예전부터 계속 미뤄오던 컴퓨터 구조, 운영체제 같은 CS 공부를 시작해야겠다는 생각이 들었다. 이러한 것들에서 거리를 두고 살아온지 꽤나 되었기에 재활 같은 느낌으로 가볍게 시작을 하고 싶었다. 그러다가 알게 된게 혼자 공부하는 컴퓨터구조 + 운영체제라는 책이다. 전공
개발할 때는 문제 없이 작동했던 코드가 실제 사용자들에게 선보이는 자리에서는 작동하지 않는 상황이 비일비재하다. 문제 해결의 실마리를 도저히 찾을 수 없는 사람은 발만 동동 구른다. 프로그래밍 언어의 문법만 알고 있는 사람에게 컴퓨터란 코드를 입력하면 어찌어찌 알아서
비트(bit) : 0과 1을 나타내는 가장 작은 정보 단위n비트는 2^n가지 정보를 표현할 수 있음바이트(byte) : 여덟 개의 비트를 묶은 단위1바이트는 8비트이므로 2^8(256)개의 정보를 표현할 수 있음워드(word) : CPU가 한 번에 처리할 수 있는 데이
프로그래밍 언어는 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어이다. 이렇게 사람을 위한 언어를 고급 언어(high-level programming language)라고 한다. 흔히 알고 있는 대부분의 프로그래밍 언어가 고급 언어에 속한다.
ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들여 산술 연산, 논리 연산 등 다양한 연산을 수행한다.ALU 연산의 결과값은 메모리가 아닌 레지스터에 우선 저장한다. CPU가 내부가 아닌 외부의 메모리에 자주 접근
04장에서 학습한 내용1) 컴퓨터 부품들은 ‘클럭 신호’에 맞춰 일사분란하게 움직인다.2) CPU는 ‘명령어 사이클’이라는 정해진 흐름에 맞춰 명령어들을 실행한다.클럭 속도가 높은 CPU는 일반적으로 성능이 좋기 때문에 클럭 속도는 CPU 속도 단위로 간주되기도 한다.
휘발성 저장 장치(volatile memory) : 전원을 끄면 저장된 내용이 사라지는 저장 장치비휘발성 저장 장치(non-volatile memory) : 전원이 꺼져도 저장된 내용이 유지되는 저장 장치일반적으로 보조기억장치인 비휘발성 저장 장치에는 ‘보관할 대상’을
자기적인 방식으로 데이터를 저장하는 보조기억장치이 때문에 자기 디스크(magnetic disk)의 일종으로 지칭하기도 함생김새나 동작 방식이 CD나 LP와 비슷함동그란 원판에 데이터를 저장하고, 그것을 회전시켜 뾰족한 리더기로 데이터를 읽음플래터(platter)하드 디
입출력장치는 CPU, 메모리보다 다루기 까다롭다. 그 이유는 다음과 같다.입출력 장치에는 종류가 너무나도 많다.입출력 장치에는 키보드, 모니터, USB 메모리, CD-ROM, SSD, 마우스 등 굉징히 많은 종류가 있으며 이들은 각각 다양한 속도, 데이터, 전송 형식
자원(시스템 자원)프로그램 실행에 마땅히 필요한 요소들운영체제(operating system)실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램사용자 영역에 적재된 프로그램들에 자원을 할당하고 이들이 올바르게 실행되도록 돕는다
포그라운드 프로세스(foreground process) : 사용자가 보는 앞에서 실행되는 프로세스백그라운드 프로세스(background process) : 사용자가 보지 못하는 뒤편에서 실행되는 프로세스데몬(daemon) / 서비스(service)사용자와 상호작용하지
CPU 스케줄링(CPU scheduling)운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것컴퓨터 성능과도 직결되는 중요한 문제임입출력 집중 프로세스(I/O bound process)입출력 작업이 많은 프로세스비디오 재생이나 디스크 백업 작업 등을
프로세스 동기화(synchronization)프로세스들 사이의 수행 시기를 맞추는 것동시다발적으로 실행되는 많은 프로세스는 서로 데이터를 주고받으며 협력하며 실행될 수 있음이들은 각기 독립적인 프로세스들이지만 공동의 목표를 위해 서로 협력하는 존재임협력적으로 실행되는
식사하는 철학자 문제(dining philosophers problem)교착 상태가 어떤 상황에서 왜 발생하는지, 나아가 교착 상태를 어떻게 해결할 수 있는지를 엿볼 수 있는 가상의 문제 시나리오모든 철학자가 동시에 포크를 집어 식사를 하면 어떤 철학자도 식사를 할 수
프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 한다.스와핑(swapping) : 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식스왑 영역(swap space) : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역스왑 아웃(s