Lecture #3 프로세스(Process) 강의 내용 1. 프로세스(Process) 란? 2. 프로세스 상태(Process State) 모델 1) 2-상태 프로세스 상태 모델 2) 5-상태 프로세스 상태 모델 3) 7-상태 프로세스 상태 모델 3. 운영체제 제어 정보 구조체 4. 프로세스 이미지 및 제어 블록(PCB) 5. 프로세스 스케줄링 & 프로세스 전환 6. 운영체제 실행 방식 7. Unix SVR4에서의 프로세스 관리 Operating System 2 The OS Manages Execution of Applications Resources are made available to multiple applications The processor is switched among multiple application The processor and I/O devices can be used efficiently 프로세스(Process)(1) “Task(태스크)” 실행중인 프로그램(A program in execution) Operating System 프로그램의 실행 메모리 이미지 An instance of a program running on a computer 프로그램 – 수동적인 실체 프로세스 – 능동적인 실체 : trace 가능 윈도우 환경에 아래아한글 프로그램을 두 번 실행하는 경우: • 하드 디스크에 저장된 아래아한글 프로그램: 프로그램 • 두개의 아래아한글 윈도우: 프로세스 4 프로세스(Process)(2) 모든 multitasking OS는 ‘프로세스’ 개념 을 바탕으로 동작한다 Operating System 프로세스는 시분할 시스템의 작업 단위 The entity that can be assigned to and executed on a processor 5 프로세스(Process)(3) 주기억장치 운영체재 보조기억장치 아래아한글 프로세스 1 아래아한글 프로그램 아래아한글 프로세스 2 Operating System 6 Process Elements (1) A process is comprised of: Program code (possibly shared) A set of data A number of attributes describing the state of the process Process Elements (2) While the process is running it has a number of elements including Identifier State Priority Program counter Memory pointers Context data I/O status information Accounting information Process Control Block Contains the process elements Created and manage by the operating system Allows support for multiple processes Trace of the Process (1) The behavior of an individual process is shown by listing the sequence of instructions that are executed This list is called a Trace Dispatcher is a small program which switches the processor from one process to another Trace of the Process (2) Dispatcher (short-term scheduler) 프로세서(CPU)를 하나의 프로세스에서 다른 프로세스로 옮겨주는 OS 프로그램 스케줄링 알고리즘을 바탕으로 다음에 실행될 프로세스를 결정한다 하나의 프로세스가 CPU 시간을 독점하는 것을 막는다 프로세스 A에서 프로세스 B 로 실행 전환하는 동안에 CPU는 dispatcher 프로그램을 실행한다 Operating System 11 Process Execution Addre s s Main M emory 0 100 Program Counter 8000 Dispatcher 5000 Process A 8000 Process B 12000 Process C Consider three processes being executed All are in memory (plus the dispatcher) Lets ignore virtual memory for this. Figure 3.2 Snapshot of Example Execution (Figure 3.4) at Instruction Cycle 13 Operating System 12 Trace from processes point of view Each process runs to completion Trace from Processors point of view Timeout I/O 프로세스 상태(Process States)(1) 프로세스 상태(Process states ) characterize the behaviour of processes 하나의 프로세스가 생성되어 종료하는 동안 여러 상태를 전이하며 실행된다 2-상태 프로세스 모델 Running state / Not-Running state Dispatch Enter Not Running Running Exit Pause (a) State transition diagram Operating System 15 프로세스 상태(Process States)(2) 2-상태 프로세스 모델 – 큐잉 모델 Queue Enter Dispatch Exit Processor Pause (b) Queuing diagram Operating System 16 Process Birth and Death Creation Termination New batch job Normal Completion Interactive Login Memory unavailable Created by OS to provide a service Protection error Spawned by existing process Operator or OS Intervention See tables 3.1 and 3.2 for more Process Creation The OS builds a data structure to manage the process Traditionally, the OS created all processes But it can be useful to let a running process create another This action is called process spawning Parent Process is the original, creating, process Child Process is the new process Process Termination There must be some way that a process can indicate completion. This indication may be: A HALT instruction generating an interrupt alert to the OS. A user action (e.g. log off, quitting an application) A fault or error Parent process terminating 5-상태 프로세스 모델 (1) 5-상태 프로세스 모델: Operating System The Running state(실행) CPU를 할당받아 명령어를 실행중인 상태 The Ready state(준비) CPU를 할당받기 위해 준비중인 상태 The Blocked(Waiting) state(대기) 어떤 사건이 일어나기를 기다리고 있는 상태(대기상태) (ex: the completion of an I/O) 20 5-상태 프로세스 모델 (2) The New state(생성) Operating System 프로세스 생성 단계 운영체제는 프로세스 생성에 필요한 작업을 수행: 프로세스 식별자(process identifier) 생성 프로세스 테이블(process table) 항목 생성 프로세스 실행이 아직 허용되지 않은 상태 프로그램이 메모리에 적재되지 않은 상태 제한된 자원에 대한 승인 제어 21 5-상태 프로세스 모델 (3) The Exit(Terminated) state(종료) 프로그램 실행 종료 단계 프로그램이 메모리에서 해제된 상태 프로세스에 대한 테이블 정보 및 기타 정보는 잠시 유지된다 예: accounting program that cumulates resource usage for billing the users 데이터가 더 이상 필요 없는 경우에 프로세스가 삭제된다 Operating System 22 5-상태 프로세스 모델 (4) 프로세스 상태 전이 Ready Running dispatcher가 실행하기 위해 하나의 프로세스를 선택하면 프로세스는 ready 상태에서 running 상태로 전환된다 Running Ready running 상태의 프로세스에 할당된 time slot이 끝난 경우 더 높은 우선순위 프로세스가 ready 상태로 들어오는 경우 Operating System 23 5-상태 프로세스 모델 (5) 프로세스 상태전이 (계속) Operating System Running Blocked 실행중인 프로세스가 기다려야 하는 사건(event)을 요구하는 경우: • 아직 준비되지 않은 자원에 대한 접근 • 입출력 동작을 시작하고 종료를 기다리는 경우 • 다른 프로세스가 입력을 제공하기를 기다리는 경우(IPC) Blocked Ready 기다리는 사건이 발생하였을 경우 24 5-상태 프로세스 모델 (6) Ready to exit: A parent may terminate a child process Operating System 25 5-상태 프로세스 모델 (7) 5-상태 프로세스 모델 – 큐잉모델 2개의 큐를 사용 5-상태 프로세스 모델 (8) 5-상태 프로세스 모델 – 큐잉모델 다수의 블록 큐를 사용 7-상태 프로세스 모델 (1) 스와핑(swapping)의 필요성 5-상태 프로세스 모델에서는 대기(blocked) 상태의 프로세스까지 주기억장치를 점유한다 가상메모리를 사용하는 경우에도 주기억장치에 너무 많은 프로세스를 올리는 경우 시스템 성능을 저하 시킨다 “suspend(일시정지)” 상태가 필요 Operating System 대기 상태의 프로세스를 디스크 장치로 스와핑(swapping) Blocked Suspend 디스크 장치로 스와핑된 blocked processes Ready Suspend 디스크 장치로 스와핑된 ready processes 28 7-상태 프로세스 모델 (2) 추가 프로세스 상태전이 Operating System Blocked Blocked Suspend 메모리 상의 모든 프로세스가 대기 상태가 되면 새로운 준비 상태의 프로세스를 가져오기 위한 메모리 공간을 확보하고자 하는 경우 pp. 141, 표 3.4 참조 Blocked Suspend Ready Suspend 기다리던 사건이 일어나는 경우 Ready Suspend Ready 메모리에 더 이상 준비 상태의 프로세스가 없는 경우 Ready Ready Suspend (unlikely) 대기 상태의 프로세스가 없는데 메모리 공간이 필요한 경우 29 7-상태 프로세스 모델 (3) Operating System 30 Reason for Process Suspension Reason Comment Swapping The OS needs to release sufficient main memory to bring in a process that is ready to execute. Other OS Reason OS suspects process of causing a problem. Interactive User Request e.g. debugging or in connection with the use of a resource. Timing A process may be executed periodically (e.g., an accounting or system monitoring process) and m ay be suspended while waiting for the next time. Parent Process Request A parent process may wish to suspend execution of a descendent to examine or modify the suspen ded process, or to coordinate the activity of vario us descendants. Table 3.3 Reasons for Process Suspension Requirements of an Operating System Process Execution Interleaving - Interleave the execution of multiple processes to maximize processor utilization while providing reasonable response time Resource Allocation - Allocate resources to processes Interprocess Communication - Support interprocess communication and user creation of processes Operating System 32 Processes and Resources Operating System 33 Operating System Control Structures Information about the current status of each process and resource for the OS to manage processes and resources Tables are constructed for each entity the operating system manages Operating System 34 OS Control Tables Memory Tables Process 1 Memory Devices Process Image I/O Tables Files Processes File Tables Primary Process Table Process 1 Process 2 Process 3 Process Image Process n Process n Operating System Figure 3.11 General Structure of Operating System Control Tables 35 Memory Tables Allocation of main memory to processes Allocation of secondary memory to processes Protection attributes for access to shared memory regions Information needed to manage virtual memory Operating System 36 I/O Tables I/O device is available or assigned Status of I/O operation Location in main memory being used as the source or destination of the I/O transfer Operating System 37 File Tables Existence of files Location on secondary memory Current Status Attributes Sometimes this information is maintained by a file management system Operating System 38 Process Table Where process is located Attributes in the process control block Operating System Program Data Stack 39 Process Image (1) Operating System 40 Process Image (2) User program User data Stack(s) for procedure calls and parameter passing 프로세스 제어 블록(Process Control Block: PCB) Operating System 운영체제가 프로세스를 관리하기 위해 필요한 정보: Process identification information Processor state information Process control information 41 Process Image (3) Operating System 42 Process Image (4) 각각의 프로세스 이미지는 가상 메모리 상에 존재한다 연속적인 메모리 공간에 할당될 필요가 없다 전용 메모리와 공유 메모리 둘 다 사용한다 프로세스 이미지의 주소는 Primary Process Table의 프로세스별 항목에 저장한다 운영체제가 프로세스를 관리하기 위해서 프로세스 이미지 전부를 메모리에 올릴 필요는 없다 Operating System 43 프로세스 제어 블록(PCB)(1) 프로세스 식별 정보 Operating System 유일한 프로세스 식별자 (always) primary process table에 대한 인덱스 사용자 식별자 작업을 실행시킨 사용자에 대한 식별 정보 부모 프로세스 식별자 현재 프로세스를 생성하는 프로세스(Parent Process)의 식별자 44 프로세스 제어 블록(PCB)(2) 프로세스 상태 정보 Contents of processor registers 프로세스 실행 상태를 표시하는 정보 주로 프로세서(CPU) 상태 정보 User-visible registers Control and status registers Stack pointers Program status word (PSW) Operating System processor status information 45 Pentium II EFLAGS Register Also see Table 3.6 프로세스 제어 블록(PCB)(3) 프로세스 제어 정보 스케줄링 및 상태 정보 프로세스 스케줄링 및 제어에 필요한 정보 프로세스 상태 (ie: running, ready, blocked...) 프로세스 우선순위 대기 상태에 있는 사건 (if blocked) 데이터 구조 정보 Operating System process queues parent-child relationships other structures etc. 47 프로세스 제어 블록(PCB)(4) 프로세스 제어 정보(계속) 프로세스간 통신 정보 프로세스 특권 정보 Ex: access to certain memory locations... 메모리 관리 정보 may hold flags and signals for IPC pointers to segment/page tables assigned to this process 자원 소유 및 이용 정보 Operating System resource in use: open files, I/O devices... history of usage (of CPU time, I/O...) 48 Queues as linked lists of PCBs Operating System 49 프로세스 스케줄링 실행중이 아닌 프로세스는 준비 큐(queue) 또는 대기 큐에서 상태 전이를 기다린다 준비 큐에서는 다음에 실행한 프로세스를 결정한다 short-term scheduling 대기 큐에서는 각 프로세스가 사건이 발생하기를 기다린다 중지(suspend) 상태의 프로세스 중에서 준비 상태로 전환할 프로세스를 결정한다 - mid-term scheduling Operating System 50 큐잉 원리 – Using Two Queues Operating System 51 큐잉 원리 – Using Multiple Queues Release Ready Queue Dispatch Admit Proce s sor Timeout Event 1 Queue Event 1 Occurs Event 1 Wait Event 2 Queue Event 2 Wait Event 2 Occurs Event n Queue Event n Occurs Event n Wait (b) Multiple blocked queues 사건 n이 발생하면 해당 대기 큐에서 하나의 프로세스가 준비 큐로 이동한다 Operating System 52 프로세스 전환(Process Switching)(1) 운영체제가 CPU 제어권을 할당 받을 때마다 프로세스 전환이 발생한다 Operating System 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. 53 프로세스 전환(Process Switching)(2) 인터럽터 예: Operating System 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) 54 프로세스 전환 절차 “문맥 교환(Context Switch)” 프로그램 카운터와 다른 레지스터을 포함한 프로세서 문맥을 저장한다 현재 수행중인 프로세스의 PCB을 새로운 상태 정보와 관련 정보로 수정한다 PCB을 적절한 큐에 이동한다 실행을 위해 다른 프로세스를 선택한다 선택된 프로세스의 PCB를 수정한다 선택된 프로세스의 PCB로부터 새로운 프로세서 문맥을 적재한다 Operating System 55 프로세스 생성(Process Creation) 일괄작업(batch job) 실행 User logs on 사용자에게 제공되는 OS 서비스(ex: printing a file) 하나의 프로세스에서 새로운 프로세스로의 확장 Operating System 사용자 프로그램은 여러 개의 프로세스을 생성할 수 있다 부모 프로세스(Parent Process) / 자식 프로세스(Child Process) 56 프로세스 생성 동작 유일한 프로세스 식별자를 할당 프로세스 이미지를 위한 메모리 영역을 할당 PCB(process control block) 초기화 많은 초기값 지정(ex: state is New, no I/O devices or files...) 이외는 부모 프로세스 내용을 복사 적절한 연결을 설정 Operating System 예: 새로운 프로세스를 스케줄링 큐에 추가한다 57 프로세스 종료(Process Termination) 일괄작업(Batch job)에서의 Halt instruction 사용자 로그오프(User logs off) 프로세스에 대한 종료 요구(Termination Request) Error and fault conditions Operating System 58 프로세스 종료 요구(1) Normal completion Time limit exceeded Memory unavailable Memory bounds violation Protection error example: write to read-only file Arithmetic error Time overrun Operating System process waited longer than a specified maximum for an event 59 프로세스 종료 요구(2) I/O failure Invalid instruction Privileged instruction Operating system intervention happens when try to execute data such as when deadlock occurs Parent request to terminate one offspring Parent terminates, so child processes terminate Operating System 60 Is the OS a Process? If the OS is just a collection of programs and if it is executed by the processor just like any other program, is the OS a process? If so, how is it controlled? Who (what) controls it? Execution of the Operating System P1 P2 Pn Kernel (a) Separate kernel P1 P2 Pn OS Functions OS Functions OS Functions Process Switching Functions (b) OS functions execute within user processes P1 P2 Pn O S1 O Sk Process Switching Functions (c) OS functions execute as separate processes Operating System Figure 3.15 Relationship Betwee n Operating System and User Processes 62 Non-process Kernel Execute kernel outside of any process The concept of process is considered to apply only to user programs Operating system code is executed as a separate entity that operates in privileged mode Execution Within User Processes Execution Within User Processes Operating system software within context of a user process No need for Process Switch to run OS routine Process-based Operating System Process-based operating system Implement the OS as a collection of system process Security Issues An OS associates a set of privileges with each process. Highest level being administrator, supervisor, or root, access. A key security issue in the design of any OS is to prevent anything (user or process) from gaining unauthorized privileges on the system Especially - from gaining root access. System access threats Intruders Masquerader (outsider) Misfeasor (insider) Clandestine user (outside or insider) Malicious software (malware) Countermeasures: Intrusion Detection Intrusion detection systems are typically designed to detect human intruder and malicious software behaviour. May be host or network based Intrusion detection systems (IDS) typically comprise Sensors Analyzers User Interface Countermeasures: Authentication Two Stages: Identification Verification Four Factors: Something the individual knows Something the individual possesses Something the individual is (static biometrics) Something the individual does (dynamic biometrics) Countermeasures: Access Control A policy governing access to resources A security administrator maintains an authorization database The access control function consults this to determine whether to grant access. An auditing function monitors and keeps a record of user accesses to system resources. Countermeasures: Firewalls Traditionally, a firewall is a dedicated computer that: interfaces with computers outside a network has special security precautions built into it to protect sensitive files on computers within the network. Process Management in Unix SVR4 Uses the model of fig3.15b where most of the OS executes in the user process System Processes - Kernel mode only User Processes User mode to execute user programs and utilities Kernel mode to execute instructions that belong to the kernel. UNIX Process State Transition Diagram UNIX Process States A Unix Process A process in UNIX is a set of data structures that provide the OS with all of the information necessary to manage and dispatch processes. See Table 3.10 which organizes the elements into three parts: user-level context, register context, and system-level context. Process Creation Process creation is by means of the kernel system call,fork( ). This causes the OS, in Kernel Mode, to: 1. 2. 3. 4. 5. 6. Allocate a slot in the process table for the new process. Assign a unique process ID to the child process. Copy of process image of the parent, with the exception of any shared memory. Increment the counters for any files owned by the parent, to reflect that an additional process now also owns those files. Assign the child process to the Ready to Run state. Returns the ID number of the child to the parent process, and a 0 value to the child process. After Creation After creating the process the Kernel can do one of the following, as part of the dispatcher routine: Stay in the parent process. Transfer control to the child process Transfer control to another process.