510 likes | 897 Views
프로세스 관리. 프로세스 개념 프로세스 협조 / 동기화 (Process Coordination/Synchronization) 데드락 (Deadlock). 프로세스 개념. “ process ” vs. “ thread ” “ process state ” PCB(Process Control Block) Process Scheduling(Algorithm). Batch Process VS Multi Process. Batch Process Multi Process. S. J 1. J 2. J 4.
E N D
프로세스 관리 프로세스 개념 프로세스 협조/동기화 (Process Coordination/Synchronization) 데드락(Deadlock) SunMoon University
프로세스 개념 “process” vs. “thread” “process state” PCB(Process Control Block) Process Scheduling(Algorithm) SunMoon University
Batch Process VS Multi Process • Batch Process • Multi Process S J1 J2 J4 S T J5 J3 J2 J4 J1 J5 J3 SunMoon University
Multi Processing Job1 Job2 Job3 J11 I/0 J12 I/0 … I/0 J21 I/0 J22 I/0 … J31 I/0 J32 I/0 … C P U J11 I/0 J12 I/0 … J21 I/0 J22 I/0 … J31 I/0 J32 I/0 … SunMoon University
Process Concept OS hello.c gcc gcc hello.c hello.exe hello.exe SunMoon University
Process • 프로세스 개념 출현 60년대 Multics시스템에서"프로세스" 처음 사용"작업(Task)“이라는 용어와 함께 사용 • 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체로 정의 • Task, Job • 비교) • thread SunMoon University
Definition of Process • A program in execution • a.out in UNIX / *.exe in DOS • Text / Data / Stack등으로 구성 • Active entity • Basic management unit in OS • dispatch unit by CPU • PCB(Process Control Block)를 할당 받을 수 있는 주체 단위 • CPU, 기타 시스템 자원을 할당 받는 주체 • 현재 실행 중이거나 곧 실행 가능한 PCB를 가진 프로그램 SunMoon University
프로세스의 종류(1) • 운영체제 프로세스: 커널 프로세스, 시스템 프로세스 • 프로세스들의 실행순서 제어, 중요한 시스템 감시 기능 담당 • 시스템 운영에 필요한 코드 수행 • 사용자 프로세스(User Process)사용자 코드를 수행하는 프로세스 • 병행 프로세스(Concurrent Process) • 여러 개의 프로세스가 동시에 수행되는 상태 • 병행성(동시성)동시에 시스템에 존재하나 어느 순간에는 단지 한 프로세스만 프로세서에서 실행 • 서로 관련이 없는 독립적인 프로세스와 다른 프로세스와 서로 협력하면서 수행하는 협동 프로세스로 SunMoon University
프로세스의 종류(2) • 독립 프로세스 • 주어진 초기값에 따라 같은 결과를 보여주는 프로세스 • 다른 프로세스와 자료 미공유 • 협동 프로세스 • 다른 프로세스에게 영향을 주거나 영향을 받는 경우 • 제한된 자원 서로 공유하는 프로세스 사이⇒ 통제된 상호 작용하는 경우에 발생 • 협동 필요한 경우 : 서로 통신을 위한 수단과 동기화 기능 필요 SunMoon University
Process-1 Process-2 main ( ) { int sum,j=0; while( ){ sum += j; j++; } } main( ) { FILE *fp; int j, buf[512]; fp = open(“tmp.dat”, “r+”); while( ){ j = read( fp, buf, sizeof(buf)); sum( buf, 256 ); wirte( fp, buf, 1024 ); } } 프로세스 상태(1) SunMoon University
프로세스 상태(2) • Running ( or running state ) • if the process currently has the CPU • Ready • CPU 를 사용할 준비가 되어 있는 상태 • Blocked • if the process is waiting for some event to happen • 예) I/O completion event SunMoon University
프로세스 상태의 변환 • 상태 변환 : 프로세서 스케줄러 이용 • 작업 스케줄러(Job scheduler) - 다중 프로그래밍의 정도 결정 스풀러에 의해 디스크에 저장된 작업 선정 ⇒ 준비 리스트에 삽입시켜주는 역할 수행 • 프로세스 스케줄러(Process Scheduler) 프로세스의 생성에서 종료까지의 단계별 과정을 실행하기 위하여 상태 변환을 일으킴 SunMoon University
Process State Transition Diagram • Figure • ready run : dispatch • run block : request I/O • block ready : I/O completion • run ready : expire time quantum • Queue • Ready queue( or list ) • linked list about process • several process may be ready • Block(ed) queue( or list ) SunMoon University
프로세스상태변환-1 SunMoon University
프로세스상태변환-2 SunMoon University
프로세스상태변환-3 • 서스펜드된 준비 상태와 서스펜드된 보류 상태 추가 [그림 3-10] 서스펜드와 재시작의 상태 변환 SunMoon University
Process Control Block • Data Structure about Process • Task Control Block(TCB) • Process Descriptor • Contents • 프로세스에 대한 자료 블럭 또는 레코드 • 프로세스의 현 상태, 식별자, 우선순위, 스케쥴링 정보, 메모리,시스템 자원, 계정 정보, 레지스터의 값 등에 관한 정보 보유 • 운영체제의 모듈에 의해 판독되고 수정 • 프로세스 생성시에 만들어지며 메인 메모리에 유지 • 운영체제 내에서 한 프로세스 존재 정의 • 실행이 종료된 프로세스 : 해당 PCB 삭제 SunMoon University
프로세스 제어 블록-계속 • Process state information –e.g. CPU registers (general purpose and special purpose) Program counter • Process control information –e.g. scheduling priority resources held access privileges memory allocated accounting [그림3-6] 프로세스 제어 블록 SunMoon University
프로세스 제어 블록-계속 • 프로세스 상태- 신규, 생성(new), 준비(ready), 실행(running), 보류(Blocked), 중단(halted)등 상태 표시 • 프로그램 계수기(program counter) - 프로세스를 수행하기 위한 다음 명령의 주소 표시 • 레지스터 - 누산기(accumulator), 색인 레지스터(index register), 범용 레지스터, 조건 코드(condition code) 등 • 계정정보(account information) - 프로세서 사용시간, 실제 사용시간, 사용상한 시간, 계정 번호, 작업이나 프로세스 번호 등 포함. SunMoon University
프로세스 제어 블록-계속 • 입출력 상태정보(I/O status information) • 특별한 입출력 요구 프로세스에 할당된 입출력 장치, 개방된(opened)파일의 목록 등 유지 • 프로세서 스케줄링 정보 • 프로세스의 우선 순위, 스케줄링 큐에 대한 포인터, 그 외 다른 스케줄 매개 변수를 가지고 있음 • 메모리 관리 정보 • 메모리 영역 정의 : 하한 및 상한 레지스터(경계레지스터) • 페이지 테이블 정보 • PCB : 모니터 메모리 영역에 저장 • 최대 프로세스의 수 선언, PCB에 공간을 미리 할당 • 시간에 따라 변화하므로 동적 기억 장소 관리가 바람직함 SunMoon University
Operation on Process • Function or system call • Creating a process • allocate PCB and fill the PCB contents • insert the ready list • dispatch on the scheduling algorithm • UNIX : fork( ), exec( ) SunMoon University
Example of fork() % fork aABbCDcEdFGef……. SunMoon University
Destroying a process • Deallocate the PCB and resources • Delete any list in memory • UNIX : abort(), wait(), exit(), kill() SunMoon University
Interrupt Processing • Interrupt vs. Polling • Priority interrupt • normal interrupt level • NMI(Non Maskable Interrupt) • nested interrupt SunMoon University
Interrupt Class(1) • Synchronous with the operation of the process : “trap” • Asynchronous interrupt • Supervisor call interrupt • initiated by a running process • not arbitrarily enter the OS but request a service • system call / TRAP call SunMoon University
Interrupt Class(2) • I/O interrupt • initiated by the I/O hardware • External interrupt • clock • console’s interrupt key = function key • Restart interrupt • RESET botton SunMoon University
Interrupt Class(3) • Program check interrupt • divide by zero • privilege violation • illegal instruction • etc. • Machine check interrupt • CPU fail • power fail • etc. SunMoon University
Interrupt Processing Model 1. Execution of program 2. Take place interrupt 3. Interrupt processing start / end 4. Resume of program SunMoon University
Context Switching(1) • Definition : • A technique which the OS saves the status of the interrupted process and routes the control to the appropriate interrupt handler. • Saving the old process and loading the saved state for the new process SunMoon University
Context Switching(2) • The status / context of the (interrupted) process • general registers • PC(program counter) • Status Register • etc. • save in the PCB • Diagram showing the CPU switch from process to process SunMoon University
Context Switching and PCB SunMoon University
Process Scheduling(1) • 목적 • multiprogramming ( + multiprocessing) • some process running at all time • to maximize CPU utilization • to maximize throughput • time sharing • to switch the CPU among processes SunMoon University
Process Scheduling(2) • Scheduling queue • Job queue • all processes in the system. • waiting for main memory, reading in disk. • “ready queue” • residing in main memory • waiting to execute • “CPU scheduling” • “block queue” or “device queue” • etc. SunMoon University
Process Scheduling(3) • Queuing Diagram • rectangular box : • a queue • circle : • the resource that serve the queue • arrow : • the flow of processes in the system SunMoon University
Scheduler(1) • Select the process from the various kinds of queues. • 종류 • long_term( or job ) scheduler • short_term( or CPU ) scheduler • medium_term scheduler (or swapper) SunMoon University
Scheduler(2) • long_term( or job ) scheduler • loads the process image from the disk to memory • “loader” and memory management module • controls the degree of multiprogramming • I/O_bound process vs. CPU_bound process SunMoon University
Scheduler(3) • short_term( or CPU ) scheduler • select the process that are ready to execute or “from the ready queue” • allocate the CPU to one of them “dispatcher” • medium_term scheduler (or swapper) • to reduce the multiprogramming degree • swap out the process image • from main memory to hard disk SunMoon University