1 / 51

프로세스 관리

프로세스 관리. 프로세스 개념 프로세스 협조 / 동기화 (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.

Download Presentation

프로세스 관리

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 프로세스 관리 프로세스 개념 프로세스 협조/동기화 (Process Coordination/Synchronization) 데드락(Deadlock) SunMoon University

  2. 프로세스 개념 “process” vs. “thread” “process state” PCB(Process Control Block) Process Scheduling(Algorithm) SunMoon University

  3. Batch Process VS Multi Process • Batch Process • Multi Process S J1 J2 J4 S T J5 J3 J2 J4 J1 J5 J3 SunMoon University

  4. 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

  5. Process Concept OS hello.c gcc gcc hello.c hello.exe hello.exe SunMoon University

  6. Process • 프로세스 개념 출현 60년대 Multics시스템에서"프로세스" 처음 사용"작업(Task)“이라는 용어와 함께 사용 • 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체로 정의 • Task, Job • 비교) • thread SunMoon University

  7. 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

  8. 프로세스의 종류(1) • 운영체제 프로세스: 커널 프로세스, 시스템 프로세스 • 프로세스들의 실행순서 제어, 중요한 시스템 감시 기능 담당 • 시스템 운영에 필요한 코드 수행 • 사용자 프로세스(User Process)사용자 코드를 수행하는 프로세스 • 병행 프로세스(Concurrent Process) • 여러 개의 프로세스가 동시에 수행되는 상태 • 병행성(동시성)동시에 시스템에 존재하나 어느 순간에는 단지 한 프로세스만 프로세서에서 실행 • 서로 관련이 없는 독립적인 프로세스와 다른 프로세스와 서로 협력하면서 수행하는 협동 프로세스로 SunMoon University

  9. 프로세스의 종류(2) • 독립 프로세스 • 주어진 초기값에 따라 같은 결과를 보여주는 프로세스 • 다른 프로세스와 자료 미공유 • 협동 프로세스 • 다른 프로세스에게 영향을 주거나 영향을 받는 경우 • 제한된 자원 서로 공유하는 프로세스 사이⇒ 통제된 상호 작용하는 경우에 발생 • 협동 필요한 경우 : 서로 통신을 위한 수단과 동기화 기능 필요 SunMoon University

  10. 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

  11. 프로세스 상태(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

  12. SunMoon University

  13. 프로세스 상태의 변환 • 상태 변환 : 프로세서 스케줄러 이용 • 작업 스케줄러(Job scheduler) - 다중 프로그래밍의 정도 결정 스풀러에 의해 디스크에 저장된 작업 선정 ⇒ 준비 리스트에 삽입시켜주는 역할 수행 • 프로세스 스케줄러(Process Scheduler) 프로세스의 생성에서 종료까지의 단계별 과정을 실행하기 위하여 상태 변환을 일으킴 SunMoon University

  14. 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

  15. 프로세스상태변환-1 SunMoon University

  16. 프로세스상태변환-2 SunMoon University

  17. 프로세스상태변환-3 • 서스펜드된 준비 상태와 서스펜드된 보류 상태 추가 [그림 3-10] 서스펜드와 재시작의 상태 변환 SunMoon University

  18. Process Control Block • Data Structure about Process • Task Control Block(TCB) • Process Descriptor • Contents • 프로세스에 대한 자료 블럭 또는 레코드 • 프로세스의 현 상태, 식별자, 우선순위, 스케쥴링 정보, 메모리,시스템 자원, 계정 정보, 레지스터의 값 등에 관한 정보 보유 • 운영체제의 모듈에 의해 판독되고 수정 • 프로세스 생성시에 만들어지며 메인 메모리에 유지 • 운영체제 내에서 한 프로세스 존재 정의 • 실행이 종료된 프로세스 : 해당 PCB 삭제 SunMoon University

  19. 프로세스 제어 블록-계속 • 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

  20. 프로세스 제어 블록-계속 • 프로세스 상태- 신규, 생성(new), 준비(ready), 실행(running), 보류(Blocked), 중단(halted)등 상태 표시 • 프로그램 계수기(program counter) - 프로세스를 수행하기 위한 다음 명령의 주소 표시 • 레지스터 - 누산기(accumulator), 색인 레지스터(index register), 범용 레지스터, 조건 코드(condition code) 등 • 계정정보(account information) - 프로세서 사용시간, 실제 사용시간, 사용상한 시간, 계정 번호, 작업이나 프로세스 번호 등 포함. SunMoon University

  21. 프로세스 제어 블록-계속 • 입출력 상태정보(I/O status information) • 특별한 입출력 요구 프로세스에 할당된 입출력 장치, 개방된(opened)파일의 목록 등 유지 • 프로세서 스케줄링 정보 • 프로세스의 우선 순위, 스케줄링 큐에 대한 포인터, 그 외 다른 스케줄 매개 변수를 가지고 있음 • 메모리 관리 정보 • 메모리 영역 정의 : 하한 및 상한 레지스터(경계레지스터) • 페이지 테이블 정보 • PCB : 모니터 메모리 영역에 저장 • 최대 프로세스의 수 선언, PCB에 공간을 미리 할당 • 시간에 따라 변화하므로 동적 기억 장소 관리가 바람직함 SunMoon University

  22. 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

  23. SunMoon University

  24. SunMoon University

  25. SunMoon University

  26. Example of fork() % fork aABbCDcEdFGef……. SunMoon University

  27. Destroying a process • Deallocate the PCB and resources • Delete any list in memory • UNIX : abort(), wait(), exit(), kill() SunMoon University

  28. Interrupt Processing • Interrupt vs. Polling • Priority interrupt • normal interrupt level • NMI(Non Maskable Interrupt) • nested interrupt SunMoon University

  29. 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

  30. 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

  31. Interrupt Class(3) • Program check interrupt • divide by zero • privilege violation • illegal instruction • etc. • Machine check interrupt • CPU fail • power fail • etc. SunMoon University

  32. Interrupt Processing Model 1. Execution of program 2. Take place interrupt 3. Interrupt processing start / end 4. Resume of program SunMoon University

  33. 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

  34. 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

  35. Context Switching and PCB SunMoon University

  36. 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

  37. 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

  38. 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

  39. SunMoon University

  40. 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

  41. 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

  42. 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

More Related