Lecture #3 프로세스(Process).

Slides:



Advertisements
Similar presentations
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
Advertisements

컴퓨터와 인터넷.
Mar OSEK/VDK Woo Dong Kyun.
인터럽트 종류 인터럽트 요구시 I/O장치 인식 방법
1. 개발 시스템 개요.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
제 2장 컴퓨터 구조.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
정보통신실습 및 특강(5)
Operating Systems Overview
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
운영체제 (Operating Systems)
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
04 CPU 스케줄링 CPU Scheduling
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
Lecture #3 프로세스(Process).
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Chapter 06 프로세스와 예약작업 관리 Solaris 1. 프로세스 관리
3 프로세스와 스레드.
Chapter2 프로세스란 조은성.
Lecture #3 프로세스(Process).
Root Filesystem Porting
DK-128 ADC 실습 아이티즌 기술연구소
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
WinCE Device Driver 실습 #2
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
PSW : PROGRAM STATUS WORD
Sungkyunkwan University OS Project Dongkun Shin
2장 프로세스 과목: 운영체제 학번: 이름:오승현.
2주차 운영체제-프로세스 2-B 장정훈.
Operating system #2 Process
제2장 프로세스 이나현.
Operating Systems Chapter 03 프로세스 개념.
Operating Systems Chapter 03 프로세스 개념.
제5장 CPU스케줄링(CPU Scheduling)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
메모리 관리 & 동적 할당.
3장 프로세스와 스레드 프로세스의 상태와 변환 과정을 이해 한다 프로세스의 생성과 종료 등 프로세스에 대한 작업을 이해한다.
2.1 개요 ★TIP 프로세스란? 부팅 실행중인 프로그램, 비동기적 행위 등
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
자바 5.0 프로그래밍.
2. 프로세스 관리 프로세스 중단과 재시작 중단과 재시작을 추가한 프로세스 상태 변화
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
Computer System Overview
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
Linux/UNIX Programming
Lecture #3 프로세스(Process) 신라대학교 컴퓨터공학과 - 운영체제.
DK-128 직렬통신 실습 아이티즌 기술연구소
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
운영체제 학번 : 이름 : 이원석 반 : 2B.
System Security Operating System.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
I/O Management and Disk Scheduling
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
Lecture 7 7-Segment LED controller using u-controller
2. 프로세스 B 안우진 - 운영체제 -.
Presentation transcript:

Lecture #3 프로세스(Process)

강의 내용 1. 프로세스(Process) 란? 2. 프로세스 상태(Process State) 1) 2-상태 프로세스 상태 모델 2) 5-상태 프로세스 상태 모델 3) 7-상태 프로세스 상태 모델 3. 프로세스 이미지(Process Image) 4. 프로세스 제어 블록(PCB) 5. 프로세스 스케줄링 6. 프로세스 전환(Context Switching) 7. 프로세스 생성 & 종료

프로세스(Process)(1) “Task(태스크)” 실행중인 프로그램 프로그램의 실행 메모리 이미지 프로그램 – 수동적인 실체 프로세스 – 능동적인 실체 : trace 가능 윈도우 환경에 아래아한글 프로그램을 두번 실행하는 경우: 하드 디스크에 저장된 아래아한글 프로그램: 프로그램 두개의 아래아한글 윈도우: 프로세스 모든 multiprogramming OS는 ‘프로세스’ 개념 을 바탕으로 동작한다 프로세스는 시분할 시스템의 작업 단위

프로세스(Process)(2) 주기억장치 보조기억장치 운영체재 아래아한글 프로세스 1 아래아한글 프로그램 아래아한글 프로세스 2

Dispatcher (short-term scheduler) 프로세서(CPU)를 하나의 프로세스에서 다른 프로세스로 옮겨주는 OS 프로그램 스케줄링 알고리즘을 바탕으로 다음에 실행될 프로세스를 결정한다 하나의 프로세스가 CPU 시간을 독점하는 것을 막는다 프로세스 A에서 프로세스 B 로 실행 전환하는 동안에 CPU는 dispatcher 프로그램을 실행한다

프로세스 상태(Process States)(1) 2-상태 프로세스 모델 Running state / Not-Running state Dispatch Enter Not Running Running Exit Pause (a) State transition diagram Queue Processor Enter Dispatch Exit Pause (b) Queuing diagram

프로세스 상태(Process States)(2) 5-상태 프로세스 모델: The Running state(실행) CPU를 할당받아 명령어를 실행중인 상태 The Ready state(준비) CPU를 할당받기 위해 준비중인 상태 The Blocked(Waiting) state(대기) 어떤 사건이 일어나기를 기다리고 있는 상태(대기상태) (ex: the completion of an I/O)

프로세스 상태(Process States)(3) The New state(생성) 프로세스 생성 단계 운영체제는 프로세스 생성에 필요한 작업을 수행: 프로세스 식별자(process identifier) 생성 프로세스 테이블(process table) 항목 생성 프로세스 실행이 아직 허용되지 않은 상태 프로그램이 메모리에 적재되지 않은 상태 제한된 자원에 대한 승인 제어

프로세스 상태(Process States)(4) The Exit(Terminated) state(종료) 프로그램 실행 종료 단계 프로그램이 메모리에서 해제된 상태 프로세스에 대한 테이블 정보 및 기타 정보는 잠시 유지된다 예: accounting program that cumulates resource usage for billing the users 데이터가 더 이상 필요 없는 경우에 프로세스가 삭제된다

프로세스 상태 전이 (Process Transitions) (1) Ready  Running dispatcher가 실행하기 위해 하나의 프로세스를 선택하면 프로세스는 ready 상태에서 running 상태로 전환된다 Running  Ready running 상태의 프로세스에 할당된 time slot이 끝난 경우 더 높은 우선순위 프로세스가 ready 상태로 들어오는 경우

프로세스 상태 전이 (Process Transitions) (2) Running  Blocked 실행중인 프로세스가 기다려야 하는 사건(event)을 요구하는 경우: 아직 준비되지 않은 자원에 대한 접근 입출력 동작을 시작하고 종료를 기다리는 경우 다른 프로세스가 입력을 제공하기를 기다리는 경우(IPC) Blocked  Ready 기다리는 사건이 발생하였을 경우

A Five-state Process Model Ready to exit: A parent may terminate a child process

스와핑(swapping)의 필요성 “suspend(일시정지)” 상태가 필요 5-상태 프로세스 모델에서는 대기(blocked) 상태의 프로세스까지 주기억장치를 점유한다 가상메모리를 사용하는 경우에도 주기억장치에 너무 많은 프로세스를 올리는 경우 시스템 성능을 저하 시킨다 “suspend(일시정지)” 상태가 필요 대기 상태의 프로세스를 디스크 장치로 스와핑(swapping) Blocked Suspend 디스크 장치로 스와핑된 blocked processes Ready Suspend 디스크 장치로 스와핑된 ready processes

프로세스 상태 전이 (3) Blocked  Blocked Suspend 메모리 상의 모든 프로세스가 대기 상태가 되면 새로운 준비 상태의 프로세스를 가져오기 위한 메모리 공간을 확보하고자 하는 경우 pp. 141, 표 3.4 참조 Blocked Suspend  Ready Suspend 기다리던 사건이 일어나는 경우 Ready Suspend  Ready 메모리에 더 이상 준비 상태의 프로세스가 없는 경우 Ready  Ready Suspend (unlikely) 대기 상태의 프로세스가 없는데 메모리 공간이 필요한 경우

A Seven-state Process Model

프로세스 이미지 (Process Image) (1) User program User data Stack(s) for procedure calls and parameter passing 프로세스 제어 블록(Process Control Block: PCB) 운영체제가 프로세스를 관리하기 위해 필요한 정보: Process identification information Processor state information Process control information

프로세스 이미지(2)

프로세스 이미지(3) 각각의 프로세스 이미지는 가상 메모리 상에 존재한다 연속적인 메모리 공간에 할당될 필요가 없다 전용 메모리와 공유 메모리 둘 다 사용한다 프로세스 이미지의 주소는 Primary Process Table의 프로세스별 항목에 저장한다 운영체제가 프로세스를 관리하기 위해서 프로세스 이미지 전부를 메모리에 올릴 필요는 없다

프로세스 제어 블록(PCB)(1) 프로세스 식별 정보 유일한 프로세스 식별자 (always) primary process table에 대한 인덱스 사용자 식별자 작업을 실행시킨 사용자에 대한 식별 정보 부모 프로세스 식별자 현재 프로세스를 생성하는 프로세스(Parent Process)의 식별자

프로세스 제어 블록(PCB)(2) 프로세스 상태 정보 Contents of processor registers 프로세스 실행 상태를 표시하는 정보 주로 프로세서(CPU) 상태 정보 Contents of processor registers User-visible registers Control and status registers Stack pointers Program status word (PSW) processor status information

프로세스 제어 블록(PCB)(3) 프로세스 제어 정보 스케줄링 및 상태 정보 데이터 구조 정보 프로세스 스케줄링 및 제어에 필요한 정보 스케줄링 및 상태 정보 프로세스 상태 (ie: running, ready, blocked...) 프로세스 우선순위 대기 상태에 있는 사건 (if blocked) 데이터 구조 정보 process queues parent-child relationships other structures etc.

프로세스 제어 블록(PCB)(4) 프로세스 제어 정보(계속) 프로세스간 통신 정보 may hold flags and signals for IPC 프로세스 특권 정보 Ex: access to certain memory locations... 메모리 관리 정보 pointers to segment/page tables assigned to this process 자원 소유 및 이용 정보 resource in use: open files, I/O devices... history of usage (of CPU time, I/O...)

Queues as linked lists of PCBs

프로세스 스케줄링 실행중이 아닌 프로세스는 준비 큐(queue) 또는 대기 큐에서 상태 전이를 기다린다 준비 큐에서는 다음에 실행한 프로세스를 결정한다 - short-term scheduling 대기 큐에서는 각 프로세스가 사건이 발생하기를 기다린다 중지(suspend) 상태의 프로세스 중에서 준비 상태로 전환할 프로세스를 결정한다 - mid-term scheduling

큐잉 원리 사건 n이 발생하면 해당 대기 큐에서 하나의 프로세스가 준비 큐로 이동한다

프로세스 전환(Process Switching)(1) 운영체제가 CPU 제어권을 할당 받을 때마다 프로세스 전환이 발생한다(그림 4.3) Supervisor Call(시스템 호출) explicit request by the program (ex: file open). The process will probably be blocked Trap An error resulted from the last instruction. It may cause the process to be moved to the Exit state Interrupt the cause is external to the execution of the current instruction.

프로세스 전환(Process Switching)(2) 인터럽터 예: Clock process has expired his time slice and is transferred to the ready state I/O first move the processes waiting for this event to the ready (or ready suspend) state then resume the running process or choose a process of higher priority Memory fault memory address is in virtual memory so it must bring corresponding block into main memory thus move this process to a blocked state (waiting for the I/O to complete)

프로세스 전환 절차 “문맥 교환(Context Switch)” 프로그램 카운터와 다른 레지스터을 포함한 프로세서 문맥을 저장한다 현재 수행중인 프로세스의 PCB을 새로운 상태 정보와 관련 정보로 수정한다 PCB을 적절한 큐에 이동한다 실행을 위해 다른 프로세스를 선택한다 선택된 프로세스의 PCB를 수정한다 선택된 프로세스의 PCB로부터 새로운 프로세서 문맥을 적재한다

프로세스 생성(Process Creation) 일괄작업(batch job) 실행 User logs on 사용자에게 제공되는 OS 서비스(ex: printing a file) 하나의 프로세스에서 새로운 프로세스로의 확장 사용자 프로그램은 여러 개의 프로세스을 생성할 수 있다 부모 프로세스(Parent Process) / 자식 프로세스(Child Process)

프로세스 생성 동작 유일한 프로세스 식별자를 할당 프로세스 이미지를 위한 메모리 영역을 할당 PCB(process control block) 초기화 많은 초기값 지정(ex: state is New, no I/O devices or files...) 이외는 부모 프로세스 내용을 복사 적절한 연결을 설정 예: 새로운 프로세스를 스케줄링 큐에 추가한다

프로세스 종료(Process Termination) 일괄작업(Batch job)에서의 Halt instruction 사용자 로그오프(User logs off) 프로세스에 대한 종료 요구(Termination Request) Error and fault conditions

프로세스 종료 요구(1) Normal completion Time limit exceeded Memory unavailable Memory bounds violation Protection error example: write to read-only file Arithmetic error Time overrun process waited longer than a specified maximum for an event

프로세스 종료 요구(2) I/O failure Invalid instruction Privileged instruction happens when try to execute data Privileged instruction Operating system intervention such as when deadlock occurs Parent request to terminate one offspring Parent terminates, so child processes terminate