고급어와 저급어High level과 Low level의 직역이다.저급어는 기계어(Machine code)이다. = CPU가 인식할 수 있는 명령어기계어는 알아보기 매우 어렵고 고급어는 인간이 이해하기 쉬운 언어이다.고급어의 코드는 보통 함수 단위로 묶어 표시한다.고급어를 기계어로 바꾸는 것이 번역이다. 기계어 코드와 디스어셈블 코드기계어 코드는 CPU같은 기계장치가 이해하는 코드로 사람이 보고 이해하기 굉장히 어렵다.어셈블리어는 기계어를 디스어셈블한 코드로 사람이 이해할 수 있는 코드다.어셈블(Assemble): 어셈블리어 → 기계어디스어셈블(Disassemble): 기계어 → 어셈블리어 C언어 코드 = 고급어 = Hige level고급어가 CPU에서 실행을 하기위해서는 저급어로 번역해야한다. → 컴..
카드를 나열하는 방법모든 카드는 그림1과 같이 뒷면이 보이도록 나열하며, 카드 앞면에는 0~4까지 숫자가 적혀있으며 같은 숫자는 없다고 가정한다.A는 B의 지시에 따라 카드를 뒤집어 볼 수 있다.B는 카드를 한 번에 두 장만 뒤집어 보라고 A에게 부탁할 수 있으며 A는 두 카드 중 어떤 카드의 값이 더 큰지 알려준다. 단 숫자를 알려주지는 않는다.A의 답을 듣고 B가 원한다면 두 카드의 위치를 바꿀 수 있다.어떤 카드부터 어떤 순서로 뒤집어 볼지는 온전히 B의 마음이다.이제 가장 적은 회수로 카드를 뒤집어 보고 가장 큰 수를 찾거나, 가장 작은 수를 찾아본다. 가장 큰 숫자 찾기기준 카드와 대상 카드1을 비교한다. (시작)대상 카드1이 크면 기준 카드와 자리를 바꾼다.기준 카드와 대상 카드2를 비교한다..
프로그래밍은 글쓰기이다.어떤 일의 진행순서를 정하는 것이 프로그래밍이다.다른 말로 일하는 절차에 대한 글쓰기다.글로 작성한 '해야 할 일'을 정한 순서대로 수행하는 것을 '실행'이라 한다.모든 실행은 고유한 흐름을 갖는다.프로그램의 목표는 근본적으로 '자동화'에 있다. 절차적 글쓰기조건 → 조건에 대해 분석 → 분석에 대한 절차를 생각 → 절차를 문서로 기술 → 실행식빵 + 나이프 + 버터를 가지고 빵을 만들때 순서식빵 한조각을 접시에 올려 놓는다.버터통의 뚜껑을 연다.손으로 나이프를 잡는다.나이프를 버터통에 넣고 버터를 퍼온다.나이프에 묻은 버터를 식빵의 윗면에 퍼바른다. 프로그램을 잘 작성하고 싶다면?선형자료 정렬 규칙(프로그램)을 '글로' 써본다.자신이 좋아하는 게임을 프로그램으로 작성해본다...
가상 메모리 시스템(1)Virtual ≒ Logical = S/W → 소프트웨어적으로 메모리를 구성 = 가상 메모리가상 메모리의 주소 공간은 페이지(Page)라는 단위로 일정 크기 분할되어 있다.Page 라는 조각 단위를 HDD와 RAM 사이를 왔다갔다 하면서 공간 이동 → PagingPage = 약 4KB Paging(페이징) 예시RAM(8GB) = 10개 프로그램 실행 가능필요에 의해 15개 프로그램을 실행해야 하는 경우HDD 영역의 일부 용량을 가져와서 RAM인것처럼 사용한다.속도는 느려지지만 15개 프로그램이 실행된다. 가상 메모리 시스템(2)운영체제에서 프로세스가 실행되는 경우, 메모리 공간을 할당해준다. = VMS(Virtual Memory Space)가상 메모리를 사용하게 되면 RAM이 부..
국가와 국민으로 이해하기컴퓨터 = 국가국가는 영토, 정부, 민간 3가지로 구성된다.영토가 있어야 정부가 존재할 수 있으며, 정부가 있어야 국민이 존재할 수 있다. (존립 기반 = 전제 조건)영토 = H/W = CPU+RAM+DISK 등정부,민간 = S/W 정부 = System(OS) → OS의 핵심 Kernel (접근 제어)민간 = Application → 프로그램 실행 → Process (메모리 공간을 개별로 소유)프로세스끼리 서로 침범해서는 안되며, B프로세스가 A프로세스에 침범 시 OS가 접근 제어한다.여러 개 프로세스가 동시에 존재 = 멀티태스킹 환경 (독립성, 원자성 보장)검찰, 경찰 = 디버거 → 다른 프로세스의 메모리를 볼 수 있다. (OS에서 권한 허용) OS의 핵심 Kernel컴퓨터라는..
컴퓨터의 구성 요소Computer = H/W + S/WS/W는 Applicaition과 System S/W로 구분된다.가장 대표적인 System S/W는 OS(Operating System)이다. 프로그램, 프로세스, 스레드프로그램은 설치하는 것이다. → 프로그램 = DISK 안에 파일로 저장되어 있다.설치된 프로그램을 실행하면 프로세스가 생성된다. → 프로세스 = 실행되고 있는 프로그램프로세스 = 파일로 되어 있는 프로그램의 일부가 메모리에 적재된다.스레드는 프로세스 속에 존재하는 실행 단위이다.스레드는 프로세스에게 할당된 자원을 공유한다. → 할당된 메모리를 공유프로세스는 최소 1개의 스레드를 갖는다.컴퓨터라는 세상에서 '나'는 프로세스라는 모습으로 존재한다.Shell = Window 탐색기 = 나..