본문 바로가기

OS(운영체제)

(11)
Process Synchronization2 Semaphores 앞의 방식들을 추상화시킴 Semaphore S integer variable 아래의 두 가지 atomic 연산에 의해서만 접근 가능 S가 5일때 P연산을 하면 자원을 하나 가져가고 V를 하면 반환. 즉, P = lock, S = unlock Critical section of n Processes Synchronization variable semaphore mutex; // initially 1 Process Pi busy - wait 방식은 효율적이지 못함(= spin lock) Block & Wakeup 방식의 구현(= sleep lock) Block & Wakeup Implementation Semaphore를 다음과 같이 정의 Block & Wakeup 을 다음과 같이 가정 ..
Process Synchronization1 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다. 일관성(consistency)유지를 위해서는 협력 프로세스 (cooperating process)간의 실행 순서(orderly execution)을 정해주는 메커니즘 필요 Race Condition 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐 S-Box(Memory address space) 를 공유하는 E-Box(CPU-Process)가 여럿 있을 경우 Race Condition의 가능성이 있음 ( -> count = 5일때 각 E-Box가 연산 후 저장할때 4,6 ..
Scheduling Algorithm(FCFS,SJF,Priority,RR, Multilevel, etc.) FCFS(First-Come-First-Served) Example 1: Process : P1, P2, P3 Burst Time : 24, 3 ,3 프로세스의 도착 순서 : P1, P2, P3 Gantt Chart Waiting Time for P1 = 0; P2 = 24; P3 = 27 Average wating time : (0+24+27)/3 = 17 Example 2 : Process : P1, P2, P3 Burst Time : 24, 3 ,3 프로세스의 도착 순서 : P2, P3, P1 Gantt Chart Waiting Time for P1 = 6; P2 = 0; P3 = 3 Average wating time : (6+0+3)/3 = 3 Convoy Effect : short proces..
CPU Scheduling 1 CPU and I/O Bursts in Program Execution, CPU-burst Time의 분포, 프로세스의 특성 분류, CPU Scheduler & Dispatcher 프로세스의 특성 분류 프로세스는 그 특성에 따라 다음 두가지로 나눔 I/O-bound process : CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job(many short CPU bursts) CPU-bound process : 계산 위주의 job(few very long CPU bursts) CPU Scheduler & Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다. Dispatcher CPU의 제어권을 CPU scheduler에 의해 ..
Process Management 2 Process Creation, System calls related to the process, cooperation between processes , Message Passing, Interprocess communication fork() system call A process is created by the fork() system call. created a new address space that is a duplicate of the caller int main(){ int pid; pid = fork(); if(pid == 0){ /* this is child */Child process -> pid = 0 printf("\n Hello, I am child!\n"); }else if(p..
Process Management 1 Process Creation, Process Termination Process Creation parent process creats children process Tree(Hierarchical structure) formation of processes processes require resource Receive resources from the OS share with parents share of resources A model in which parents and children share all resources A model that shares a part of it A model that you don't share at all Execution Parent and child co-..
Process 2~3 Thread Thread "A Thread(of lightweight process) is a basic unit of CPU utilization" 1. Thread의 구성 Program Counter Register Set Stack Space 2. Thread가 동료 Thread와 공유하는 부분(=task) code section data section OS resource PCB의 Program Counter와 Registers 3. 전통적인 개념의 heavyweight process는 하나의 Thread를 가지고 있는 task로 볼 수 있다. 4. 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행(r..
Process 1 프로세스의 개념, 프로세스의 상태(Process State), 프로세스의 개념, 프로세스 상태도, Process Control Block(PCB), 문맥교환(Context Switch), 프로세스를 스케줄링하기 위한 큐, Ready Queue와 다양한 Device Queue, 스케줄러(Scheduler) 프로세스의 개념 Process is a program in execution 프로세스의 문맥(context) CPU의 수행 상태를 나타내는 하드웨어 문맥 Program Counter(PC) 각종 register 프로세스 주소 공간 code, data, stack 프로세스 관련 커널 자료 구조 PCB(Process Control Bolck) Kernel stack 프로세스의 상태(Process State)..
System Structure & Program Execution (2) 컴퓨터 시스템 구조, 인터럽트(Interrupt), 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), DMA(Direct Memory Access), 서로 다른 입출력 명령어, 저장장치 계층 구조, 프로그램의 실행(메모리 load), 커널 주소 공간의 내용, 사용자 프로그램이 사용하는 함수, 프로그램의 실행 동기식 입출력과 비동기식 입출력 두 경우 모두 I/O의 완료는 인터럽트로 알려줌 동기식 입출력(Syncronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 제 1 구현 방법 I/O가 끝날 때까지 CPU를 낭비시킴 매시점 하나의 I/O만 일어날 수 있음 제 2 구현 방법 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 I/O처리를..
System Structure & Program Execution (1) 컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), 인터럽트(Interrupt) 컴퓨터 시스템 구조 CPU에서 Memory가 필요하듯이 각 I/O device들의 Controller도 local buffer가 필요함 각 Device의 일은 Controller에서 담당 CPU는 Memory에서 각 Instruction을 읽어와서 실행하는 일만 한다. mode bit : 지금 CPU가 하는일이 운영체제인지 사용자 프로그램인지 등을 판별하는 역할 register : Memory보다 더 빠르면서 정보를 저장할수 있는 작은 공간 Interrupt Line : Memory에서 하나의 Ins..