본문 바로가기

CS/OS9

[OS] 9. Deadlock 1. 조건 1) Mutual exclusion 2) Hold & Wait 3) No Preemption 4) Circular Wait : 모두를 만족해야 deadlock 생성 가능, 즉 하나만 방지하면 deadlock 불가능 2. Prevention 1) Mutual exclusion - Mutual exclusion 속성을 가지지 않은 resource에 대해서만 가능 2) Hold & Wait - 프로세스가 Task를 위한 모든 Resource를 점유해야 시작 가능하도록 설계, 하나라도 불가능하면 다시 release. - Low resource utilization, possibility of Starvation 3) No preemption - Preemption 속성을 가지지 않은 resource에.. 2020. 11. 29.
[OS] 8. Synchronization 1. 개요 - 하나의 프로세스에서 2개 이상의 Thread가 Concurrent하게 작업할 때 같은 Address space를 공유하기 때문에 같은 Data를 사용할 수 있다. - 이 상황을 Race Condition이라고 하고 이는 Non-deterministic한 결과를 낳는다. - Race Condition 때 발생하는 문제를 해결하기 위해 Synchronization을 수행한다. cf) Scheduling은 OS 권한으로 프로그래머가 통제할 대상이 아님. 2. Critical section : 임계영역 - 공유되는 자원(resource)를 사용하는 Code 부분 3. Lock 프로세스의 shared resource에 대한 점유 상태를 나타내는 것으로써 상호배제(Mutual Exclusion : M.. 2020. 11. 29.
[OS] 7. Process Scheduling(2) 1. Advanced Scheduling 1) Proportional share scheduling - 프로세스 별로 비율을 정해서 CPU를 사용하는 것 2) Real time system - deadline이 있는 system Soft real time system deadline에 맞추려고 하지만 보장은 없는 system hard real time system deadline에 맞춰지지 않으면 치명적인 system 따라서 preemptive priority-based scheduling이 되어야 한다. 2. Way to guarentee deadline Interval > Deadline > Processing time이면 deadline은 보장된다. * reate of periodic process.. 2020. 11. 18.
[OS] CPU, Processor, Core, Process, Thread 그리고 관계 정리 1. HW 1) CPU : Central Processing Unit, 중앙처리장치 간단하게 컴퓨터의 뇌로써 '사고'를 담당 기억, 연산, 제어를 담당 cf) MPU, MCU - MPU : Micro Processing Unit CPU의 한 종류로써, 전자부품과 반도체칩을 하나의 작은 칩에 내장한 형태의 CPU - MCU : Micro Controller Unit CPU(또는 MPU) 및 RAM, ROM, I/O 제어회로를 단일 칩에 모두 내장한 것을 의미 한 개의 소자로 하나의 컴퓨터 기능을 수행한다 2) Processor 컴퓨터 운영을 위해 기본적인 명령어에 반응하고 처리하는 논리회로 디바이스가 해야할 일을 총 지휘하는 프로세서를 CPU라고 함(보통 프로세서와 CPU를 같은 의미로 사용) 이외의 프로.. 2020. 11. 4.
[OS] 5. Thread 1. Thread - Sequence of instruction of program : 실행의 흐름 - 프로세스로부터 execution state를 분리한 것 상태 원소 비고 Static state code, global variable, heap, opened files... Thread간 공유 Execution state PC, SP, stack Thread간 공유X - 사용하는 이유 1) multi core의 충분한 활용 : 하나의 프로세스는 하나의 프로세서로 mapping되기 때문 * 프로세서와 CPU는 비슷한 의미, core는 이들에 속해있는 원소라고 보면됨 2) 여러 process를 IPC하는 것은 overhead 발생 및 잦은 context-switch로 비용, 시간 관점에서 비효율적 3) .. 2020. 11. 3.
[OS] 4. 프로세스(2) 1. PCB(Process Control Block) 프로세스는 각각 자신의 PCB를 갖고 있으며 PCB는 프로세스에 대한 모든 정보를 포함한다. 2. IPC(Inter-Process Communication) 프로세스는 기본적으로 서로에게 간섭할 수 없고 독립적이지만 필요에 따라 협력할 수 있고, 이유는 다음과 같다. 1) 정보교환 2) 계산 가속화 : 특정 Task를 sub task들로 나누어 가속화하기 위해 병렬로 처리 3) 모듈성 : 기능에 따라 별도의 프로레스 또는 스레드로 나누어 모듈식 형태로 시스템을 구성하기를 바랄 때 4) 편의성 : 개별 사용자들이 동시에 작업할 많은 Task를 병렬로 처리하기 위해 3. IPC Model 1) Shared memory - 프로세스가 OS에게 명확하게 공유.. 2020. 11. 2.
[OS] 3. 프로세스(1) 1. Process란? - 프로세스는 실행된 프로그램의 인스턴스로써 각각은 PID로 구분한다 # Address space 1) Code : 프로그램의 Code가 저장되고 PC register가 가리킴으로써 순차적으로 코드가 실행됨 2) Data : 전역변수가 저장 3) Stack : Temporary data(params, local vars, return address 등)이 저장, SP register가 가리킴 4) Heap : Dynamic하게 할당되는 공간, 예를 들어 malloc으로 할당되는 공간 2. Process State Transition * scheduler : ready state인 프로세스를 고르는 Module * process hierarchy - 프로세스는 또 다른 프로세스를 생.. 2020. 10. 30.
[OS] 2. 시스템 구조 1. OS service 사용자 인터페이스(UI) : CLI, Batch Interface, GUI ↑↓ System call ↑↓ 프로그램 실행 입출력 연산 파일 시스템 조작 통신 오류 탐지 자원 할당 회계 보호/보안 읽기/쓰기 /생성/삭제 /수정/권한 프로세스 간 정보 교환 시스템 자원에 대한 접근 통제 /외부로부터의 접근 관리 2. System Call - System call은 Privileged instruction 즉, Kernel mode에서만 사용가능한 Instruction을 호출한다 - 이를 호출하기 위해 User는 OS가 지원하는 User Interface를 통해 요청한다 - System call이 호출되면 User mode에서 Kernel mode로 전환되어 System call에 맞.. 2020. 10. 28.
[OS] 1. 개요 0. Operating System Concept을 보고 아주대 김상훈 교수님의 강의를 들으며 공부한 내용입니다. 1. 컴퓨터 시스템 1) HW : CPU + memory + I/O device 2) OS 3) Application Program 4) User : User는 Application Program을 통해 연산을 요청하고 OS는 이 연산을 하기 위해 HW의 자원을 어떻게 사용할지 결정(제어) 2. 컴퓨터 시스템 구조 현대의 모든 컴퓨터는 Von Neuman(폰 노이만) 구조를 갖는다. # Von Neuman 구조 : Stored-program computer model # BUS 구조 - CPU와 Device Controller(DC)는 공유되는 Memory와 함께 하나의 버스 구조로 연결되어.. 2020. 10. 28.