일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- Spring
- 큐
- Collection
- JDBC
- 프로그래머스
- 백준
- Rails
- design-pattern
- Collections
- JavaScript
- 스택
- 디자인패턴
- javscript
- Eclipse
- 함수형 프로그래밍
- 람다 칼큘러스
- 겨울카카오인턴
- exception
- Pattern
- 자바
- tcp
- Python
- DesignPattern
- lambda calculus
- 파이썬
- solid
- Network
- 로버트마틴
- Java
- functional programming
Archives
- Today
- Total
개발자 노트
[프로세스관리]1.프로세스개요 본문
출처
http://www.kocw.net/home/search/kemView.do?kemId=978503 (경성대 양희재교수님 자료)
operation system concepts(공룡책)
프로세스 관리
1. 프로세스 개요
프로그램과 프로세스의 차이
-
프로그램은 보조기억장치에 있는 코드들.
-
프로세스는 그 프로그램이 메모리 상에서 작동하고 있는 상태인 것.
-
프로세스가 메모리상에 있으면서 sp,stack,data,pc,registers 등등을 가지게 됨.
-
프로세스와 동의어로는 job,task가 있음
프로세스의 상태
-
프로세스는 실행되면서(excutes) 상태를 변화한다. 그 상태는 프로세스의 현재 활동에 따라 정의 됨.
-
new, ready, running, waiting, terminated 상태가 존재.
- new : 프로세스가 생성되는 중인 상태
- Running : Instruction이 실행 중인 상태
- Waiting : 특정 이벤트가 발생하길 기다리고 있는상태(I/O가 완료 되던가 reception of singal)
- Ready : 프로세스가 특정 프로세서에게 할당받길 기다리는 상태. 즉, 인스트럭션 실행할 준비 되있는 상태
- Terminated : 실행을 완료한 상태
-
프로세스 상태 천이도
-
상태 천이는 언제 발생하는가?
new -> ready : admit한 경우
ready -> running : scheduler dispatcher에 의해.
running -> ready : 타이머 인터럽트 발생(시분할 시스템)
running -> waiting : I/O or event wait
waiting -> running : I/O or event 완료
running -> terminated : 종료될 때.
PCB
- 운영체제에서 프로세스를 관리하기 위해 프로세스를 표현하는 자료형.(process control block)
- PCB에 저장되는 정보들.
- Process state (new,ready,running 등)
- Program Counter
- CPU registers
- acc, index registers, sp,범용레지스터 등 포함.
- CPU-scheduling information
- process 우선순위, 스케쥴 큐 포인터 등 가지고 있음
- Memory-management information.
프로세스 스위칭 과정
- 위 그림을 보면 스위치할 때 오버해드 발생.
- 실행중인 PCB 상태정보 저장
- 다음 PCB상태 로딩
- 두 행동에 대해 cpu idle 발생.
ubuntu PCB정보
- 위치
- 내부 내용
Queues
-
Job Queue
- 프로세스가 생성됬을 때 바로 Main Memory로 안올라감. 어떤 프로세스를 Main Memory로 올릴지 결정.(I/O bound, CPU bound job 섞어 올림.)
- Job scheduler가 관리.
- 운영체제의 Process Management 부분에 구현되어 있음.(현재 PM배우는 중)
- Long-Term scheduler라 함.
- 프로세스가 실행될 때만 작동.
-
Ready Queue
- CPU scheduler가 관리
- ready queue에서 대기 중인 프로세스에게 cpu자원 할당.
- Short-term scheduler라고 부른다.(1초에 수십번씩 작동)
- CPU scheduler가 관리
-
Devicce Queue
- Device scheduler
- Device 사용을 기다리는 프로세스를 관리한다.
- device엔 프린터나 키보드 마우스 등등 존재.
멀티프로그래밍
멀티프로그래밍을 적용할 때 나오는 개념들
- Degree of multiprogramming
- 메인 메모리에 몇 개의 프로세스를 올릴 것인가에 대한 내용
- i/o bound/cpu bound process
- i/o 작업 위주의 프로세스냐 cpu 작업 위주의 프로세스이냐 내용.
- i/o bound process 종류로는 hwp,word 등 존재
- cpu bound process 종류로는 텐서플로우 등!
- i/o 작업 위주의 프로세스냐 cpu 작업 위주의 프로세스이냐 내용.
- Medium-term scheduler
- 어떤 프로그램을 swap out할 건지 결정하는 스케쥴러
- swapping이란?
- 시분할 시스템에서 우선 순위가 낮은 프로세스(미사용 중인 프로세스)를 메인 메모리로부터 backing store로 쫓아내고 (backing store에 저장) 우선 순위가 높은 프로세스를 메인 메모리에 올리는 것.(swap in)을 스와핑이라고 함.
- Context switching(문맥전환)
- Scheduler
- ready queue에 대기중인 프로세스 중 어떤 프로세스를 실행할 것인지 결정
- Dispatcher
- reg,pc,base,limit 등 pcb정보를 저장하고 복원(restore)해주는 프로그램
- Context switching overhead
- Dispatcher에서 저장, 복원시 오버해드 발생하는 것. 위 Figure 3.4내용
- Scheduler
반응형
'컴퓨터과학 기초 > 운영체제' 카테고리의 다른 글
[관심주제정리]IPC 통신 (진행 중) (0) | 2020.04.08 |
---|---|
[프로세스관리]2.CPU스케쥴링3.프로세스생성과종료 (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