일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- tcp
- JavaScript
- DesignPattern
- Pattern
- Spring
- 파이썬
- Collection
- 디자인패턴
- 스택
- 로버트마틴
- 함수형 프로그래밍
- 큐
- 겨울카카오인턴
- JDBC
- design-pattern
- 자바
- Network
- lambda calculus
- Rails
- 람다 칼큘러스
- functional programming
- exception
- solid
- Eclipse
- Collections
- 백준
- javscript
- 프로그래머스
- Python
- Java
Archives
- Today
- Total
개발자 노트
[프로세스관리]2.CPU스케쥴링3.프로세스생성과종료 본문
출처 : http://www.kocw.net/home/search/kemView.do?kemId=978503 (경성대 양희재교수님 자료)
operation system concepts(공룡책)
II. 프로세스 관리
2.CPU 스케줄링
CPU Scheduling
ready queue에 있는 프로세스에게 cpu를 어떻게 할당해줘야 좋을까?
- 좋고 나쁨을 평가하는 기준
- CPU Utilization
- cpu 사용시간 중 cpu가 서비스 해준 시간 (busy_time/(busy_time+idle_time)) (단위 %)
- Throughput
- 단위 시간당 몇 개의 job이 끝났는지 (단위 : sec,min,hour 등)
- Turnaround time
- ready queue 진입 ~ terminated 상태까지 시간 (단위 : sec)
- Waiting time(대기시간)
- ready queue에서 얼마나 기다렸는지 (단위 sec)
- Response time(응답시간)
- 요청을 보낸 후부터 첫 응답이 나올 때 까지 걸린 시간
- CPU Utilization
CPU Scheduling Algorithms
어떻게 할당해줘야할 지에 대한 내용
종류
- First-Come,First-Served(FCFS)
- Shortest-Job-First(SJF)
- Shortest-Remaining-Time-First
- Priority
- Round-Robin(RR)
- Multilevel Queue
- Multilevel Feedback Queue
3.프로세스 생성과 종료
-
프로세스는 프로세스에 의해 생성 된다.
-
부모/자식 프로세스
- 부모 프로세스
- 프로세스를 생성한 프로세스
- 자식 프로세스
- 부모 프로세스에 의해 생성된 프로세스
- 부모 자식 프로세스는 tree형태를 지님
- 리눅스 시스템은 최초로 init프로세스가 생성되고 kthreadd, sshd 프로세스가 생성됨.
- 부모 프로세스
-
PID
- 프로세스 고유 번호
- 이걸로 시스템 내 process를 유일하게 구분 지을 수 있다.
-
프로세스 생성시 고려할 두가지
- 프로세스를 만들 때 두가지 실행 버전이 있음
- parent process가 child process와 concurrent하게 실행됨
- child process가 terminated될 때까지 대기
- address-space에 대한 두가지 케이스
- child process가 parent process를 그대로 복사한다.(완전 동일한 프로그램이 됨)
- 새로운 프로세스로써 메모리에 올라감.
- fork()
- 부모 프로세스를 복사하고 새로 할당받음. 즉, 새로운 프로그램.
- 프로세스간 통신을 쉽게하기 위해 사용
- exec()
- 부모 프로세스 메모리에 실행파일(binary)을 덮어버림.
- 프로세스를 만들 때 두가지 실행 버전이 있음
위 그림을 보면 fork()로 프로세스를 생성한 후, 부모 프로세스는 자식 프로세스 결과가 반환될 때까지 ready queue에 대기 (operating system concepts 책에선 ready queue에 대기한다고 하였으나 인터넷 검색시 waiting queue에 대기한다고 나온다. 내 생각엔 ready queue에 대기하면 cpu 할당받는 프로세스가 되어 busy waiting이 되기 때문에 ready queue에 있으면 안될 것이다.)
자식 프로세스는 exec()로 실행파일을 덮어씌운 뒤 모두 실행되면 exit()로 반환.
부모 프로세스는 재시작.
-
프로세스간 통신 방식
- shared memory
- message passing
-
프로세스 종료
- exit() system call
- 해당 프로세스가 가졌던 모든 자원을 OS에게 반환한다.
반응형
'컴퓨터과학 기초 > 운영체제' 카테고리의 다른 글
[관심주제정리]IPC 통신 (진행 중) (0) | 2020.04.08 |
---|---|
[프로세스관리]1.프로세스개요 (0) | 2020.04.07 |
[3-1,3-2] 고등운영체제, 인터럽트기반운영체제 (0) | 2020.03.19 |
[2-2]운영체제 역사 (0) | 2020.03.19 |
[2-1]운영체제 서론(양희재교수님내용정리) (0) | 2020.03.19 |
Comments