프로세스 관리 (Process Management)
컴퓨터에서 제일 중요한 자원인 CPU를 어떻게 나눠주는가.
프로세스 (process)
프로세스 vs 프로그램
프로세스 : 실행 중에 있는 프로그램 (program in execution)
프로그램 : 하드웨어 안에 죽은 듯이 있는 것
무덤 속 프로그램, 살아 움직이는 프로세스
추가할 것)
new, ready ,running, waiting, terminated 상태 시나리오 예시로 설명하기
PCB (proccess control block) ; 우리의 주민등록 정보와 비슷하다? 정부가 사람을 잘 관리하기 위해서 정보를 가지듯이.
process = task
그러므로 TCB라고도 부름
프로세스에 대한 모든 정보 (base, limit, 현재까지 프로세스가 얼마나 cpu를 썻는가(그러니 돈을 얼마 내라), PID (프로세스 번호), 열린파일들의 리스트(얘가 지금 어떤 파일을 사용하고 있는 지?))
PCB는 메인메모리의 OS쪽에 들어있다. (프로세스 관리 부서에)
추가) PCB 예시 시나리오
Queues
- job queue
프로세스도 줄을 서야한다?
-> 메인메모리는 작고, 거기 올라가려하는 놈은 많고 -> 줄서서 기다리기
하드디스크안에는 수많은 job들이 들어있는데, 메인메모리로 올라가려면 작업들이 줄서서 기다려야함
job scheduler ; job queue에 대기하고 있는 프로그램 중에서 어떤 걸 먼저 올려줄 지 결정. OS의 프로그램 중 일부.
= long term scheduler (앞선 프로세스가 완전히 끝난 뒤에 메모리가 비워져야지만 일어남. 즉, 자주일어나지 않음. 몇분 간격?)
- ready queue
-> 메인메모리 안에 올라왔더라도 cpu에 올라오려면 또 줄서서 기다려야함
cpu scheduler ; ready queue 안에 줄 서서 기다리고 있는 프로세스 중에 어느놈을 골라서 서비스 해줄 것인가?
= short-term scheduler (I/O를 만나던지 time expire되면 그다음엔 cpu를 누구한테 넘겨줄 지 빨리빨리 골라야함. 1초에도 수십/수백번씩 일어날 수 있다. 동시에 프로그램이 돌아가는 것처럼 보이도록 함)
- device queue
-> 프린터나 디스크 등의 그런 장치를 쓰려면 또 줄서서 기다려야함
device scheduler ; 디스크를 사용하려는 프로세스가 많을 때, 앞에 놈이 끝나면 또 어느 놈을 먼저 서비스를 받게 해줄 것인가?
줄안서도 되는건 가는(죽는) 것밖에 없음
컴퓨터의 일생 줄서서 기다리는거...
오늘했던 내용 다 중요합니다~ 다음시간에는 스캐쥴링 하는 방법에 대해서 공부한다. 특히 cpu 스캐쥴링이 제일 중요.
멀티프로그래밍
; 용어가 무엇인지 이해! (시험출제)
- degree of multiprogramming ; 메인메모리에 몇 개의 프로세스가 올라와있는가
- I/O bound vs CPU-bound process
주로 I/O 관련된 작업(입출력)만 하는 프로세스 ; 워드프로세서(문서편집) ...
주로 cpu 관련된 작업(계산)만 하는 프로세스 ; 슈퍼컴퓨터 쓰는 애플리케이션 - 계산량이 방대. (일기예보)
job scheduler가 하는 일 : I/O 관련된 작업만 올리면 I/O만 바쁘고 cpu는 할일이 없고, 그 반대도 마찬가지
그러니까 이떄 I/O랑 cpu가 골고루 사용되도록, 메인메모리로 올라가는 작업 중에서 I/O랑 cpu 작업을 적절히 믹스해서 올려준다.
- Medium-term scheduler :
swapping
ex. 시나리오 (그림도 추가)
하나의 서버컴을 여러명이 사용한다고 가정. 서버컴의 메모리에 이용자 A, B, C를 위한 메모리 할당됨
만약에 B가 자리 비움(커피마시러감). 이때 B의 프로세스가 5분 정도 사용되지 않음. 그러니까 B의 프로세스는 그동안은 메인메모리에 더이상 있을 필요가 없음.(메인메모리는 비싼 자원이기 때문)-메모리에 있는데 아무 활동도 안하는 프로세스를 메인메모리에서 디스크(swap device)로 쫒아냄. (swap out)
이제 비어있는 메모리가 생기니까, 새로운 프로세스를 올려주거나 A와 C한테 메모리를 나눠줄 수도 있고...
만일 또 이제 B가 돌아와서 작업을 다시 시작한다면, 이제 B 프로그램이 다시 동작해야함. 이제는 swap device로 갔던 것들이 이제 메인메모리로 다시 돌아옴 (swap in). (꼭 아까 있던 메모리 자리가 아닌 비어있는 다른 자리로 들어가기도 함. 이것도 다 OS가 저번에 쫒아낸 자리나 뭐나 다 기억하고 있어야함(?))
short-term보다는 더 적게일어나고 long-term보다는 더 자주 일어나서 medium-term scheduler!
'IT > CS 공부' 카테고리의 다른 글
[컴파일러] LL(1) 파서 문제 풀이 (0) | 2022.06.11 |
---|---|
[컴파일러] LL 파서와 LR 파서 (0) | 2022.06.10 |
[KOCW] 운영체제 3차시 - 운영체제 서비스 (0) | 2021.11.08 |
[KOCW] 운영체제 3차시 - 이중모드, 하드웨어 보호 (0) | 2021.11.08 |
[KOCW] 운영체제 2차시 - 고등운영체제, 인터럽트 기반 운영체제 (0) | 2021.10.27 |