1. 프로세스의 개념 2. 프로세스의 상태 (Process State) 3. 프로세스 상태도 4. Process Control Block (PCB) 5. 문맥 교환 (Context Switch) ⭐ 6. 큐 (Queue) 7. 스케줄러(Scheduler) 1. 프로세스의 개념 프로세스는 실행중인 프로그램 프로세스의 문맥이란 프로세스가 태어나서 실행이 되다가 종료가 될텐데, 이 프로그램 중간 어느 시점을 잘라놓고 봤을 때 이 프로그램이 무엇을 어떻게 실행 했는 지, 현재 시점에 어떤 상태에 있는 지, 어디까지 작업을 수행했는지를 정확하게 나타내기 위해서 사용되는 개념 프로세스가 CPU를 점유하게 되면 CPU안의 Program Counter라는 레지스터가 이 프로세스의 code 어느 부분을 가리키게 되고, ..
1. 동기식 입출력과 비동기식 입출력 ⇒ IO에서의 synchronous라고 하는 것은 IO까지 가서 결과를 보고 오는 것을 보통 동기식 입출력이라고 함. ⇒ 동기식 입출력은 I/O 요청 후 I/O장치로부터 작업이 끝난 다음에야 사용자 프로그램이 다음 일을 함. 비동기식 입출력은 I/O장치에 무언가를 요청한 다음 (결과를 기다리지 않고) 바로 다시 CPU제어권을 얻어서 일을 수행. ⇒ IO장치에 여럿이 동시에 접근할 수 있는데 예를들어, A는 이 IO장치에 갖다 쓰고(synchronous write), B는 읽어오고(synchronous read). 이 때, A, B 모두 읽고 쓰는 것 확인까지 한 상태 ⇒ IO 장치에 가지 않고(확인하지 않고) 다음 일을 수행하는 것은 asynchronous(비동기식 ..
1. 컴퓨터 시스템 구조 ⇒ Memory는 CPU의 작업 공간. CPU는 매 순간(매 클럭) 메모리에서 기계어를 하나씩 읽어서 실행. ⇒ I/O device로 부터 Computer로 데이터를 가져가는 것을 input, 처리된 결과가 I/O Device로 나타나는 것을 output이라고 함. ⇒ Disk는 input 장치이기도 하고 output 장치이기도 함. 파일을 메모리에 input, 파일을 disk에 output. ⇒ 각각의 IO device들은 각 device를 전담하기 위한 작은 cpu같은 것들이 있음. 이것을 device controller라고 부름. ⇒ disk에서 head가 어떻게 움직이고 어떤 데이터를 읽을지와 같이 disk 내부를 통제하는 것은 cpu가 아닌 disk에 붙어있는 disk ..
1. 운영체제란? 소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 함 ⇒ 운영체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라감 ⇒ 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것. ⇒ 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 됨. ⇒ 메모리에 상주하는 운영체제의 부분을 커널(kernel)이라고 부르며 이를 좁은 의미의 운영체제라고도 부름. ⇒ 즉, 커널은 OS 코드 중에서도 핵심적인 부분 ⇒ 넓은 의미의 OS는 커널뿐 아니라 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념 ex) 윈도우에서 파일을 복사..