목록CS (3)
리미로그

장기 스케줄러 잡 스케줄러 디스크와 메모리 사이 스케줄링 어떤 프로세스를 메모리 즉 ready queue에 가져올지 선택 따라서 다중프로그래밍 정도를 결정함 다중프로그래밍 : 하나의 CPU로 동시에 여러 프로그램을 실행하는 것처럼 처리하는 시스템 중기 스케줄러 메모리에 올라와있는 프로세스 수를 조절 메모리가 한계가 있기 때문에 모든 프로세스를 올릴 수 없으므로 필요 swap in / swap out 메모리에서 현재 필요한 프로세스만 남겨두고 backing store(secondary storage)에 저장 다중프로그래밍 정도를 조절 단기 스케줄러 CPU 스케줄러 메모리와 CPU 사이 스케줄링 ready queue에 있는 프로세스 중 다음에 실행될 프로세스를 선택하는 역할( 어떤 프로세스를 running ..

이번 글에서는 프로세스마다 가지고 있는 PCB와 문맥을 교체하는 Context Switching에 대해 알아보겠다. PCB (Process Control Block) 프로세스의 정보를 저장하고 있는 블록 · 프로세스 상태 : new , ready, waiting, running, terminated (자세한 내용은 다음에) · PID : OS가 프로세스를 구별하기 위해 부여하는 번호 · PPID : 현재 프로세스의 부모 프로세스 PID 부모 프로세스는 시스템 콜을 통해 현재 프로세스를 호출한 프로세스 ps 명령어를 통해서 PID와 PPID을 확인 가능 · PC : 다음 실행될 명령어를 가리키고 있다 · CPU register · CPU 스케줄링 정보 : 우선순위, 최종 실행 시각, CPU 점유시간 · 메..
Process • 실행 중인 프로그램 c.f. program : HD나 secondary storage에 저장되어 있는 정적인 파일 • OS로부터 자원을 할당받는 작업 단위 • 각 프로세스는 자신만의 주소 공간을 가짐 Code : text 영역, instruction 저장 Data : global 변수, static 변수 저장 Heap : 메모리 동적 할당 객체 저장 Stack : parameter, return address, local variable 저장 Thread • 프로세스의 실행 흐름 각 스레드는 별도의 실행 state를 가짐 -> 각각의 register set을 가짐 • 각자 고유의 stack 영역을 가짐 나머지 공간은 같은 프로세스 내에 있는 스레드끼리 공유 다른 스레드의 stack에 접..