Run/Operating System(4)
-
[OS] CPU Scheduling
- Multi-programming의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 process를 가지게 하는 것 - 하나의 process가 대기해야 할 때마다, 다른 process가 CPU 사용을 양도받을 수 있음 - CPU-I/O Burst Cycle: CPU 실행과 I/O 대기의 cycle로 구성 - Ready queue에서 나온 process가 CPU dispatch 되는데, ready queue는 반드시 FIFO인 것이 아님 → CPU Scheduling Algorithm - CPU scheduling decision이 일어나는 경우 (1) Process state: running → waiting (2) Process state: running → ready (3) Process s..
2023.10.11 -
[OS] Multi-Processing vs Multi-Thread (+ IPC, Multi-Core)
1. Multi-Programming - Multi-programming의 목적: CPU 이용 최대화하기 위해 항상 어떤 process 실행되도록 하는 것 → 시분할: 각 프로그램 실행되는 동안 사용자와 상호작용 할 수 있도록 process 사이에서 CPU 빈번하게 교체하는 것 2. Multi-Processing (다중 처리기) - Multi-core 라고도 함 - CPU scheduling (= process scheduling) - CPU 여러 개 사용 (매우 밀접한 통신을 하는 둘 이상의 processor, 즉 CPU 가짐) - n개의 CPU를 가지는 multi-processor 하나가 1개의 CPU를 가지는 single-processor n개보다 비용 적게 듦 - 기능 적절히 분산된 경우 한 CP..
2023.10.11 -
[OS] Memory Management
- 레지스터는 일반적으로 CPU 클록 1 사이클 내에 접근 가능 - 메인 메모리의 경우 많은 CPU 클록 사이클 소요, CPU가 필요한 데이터가 없어 명령어 수행 못하는 stall 현상 발생 가능 - 이를 해결하기 위해 CPU와 메인 메모리 사이에 빠른 속도의 메모리(캐시)를 추가 Base Register, Limit Register - Base Register: 가장 작은 합법적인 물리 메모리 주소의 값 저장 - Limit Register: 주어진 영역의 크기 저장 → Base register, Limit register는 논리 주소 공간을 정의함 Hardware Address Protection 메모리 공간 보호 - 운영체제의 메모리 공간이나, 다른 사용자 프로그램의 메모리 공간의 접근이 일어나면 운..
2023.10.11 -
[OS] Synchronization & Deadlock
Synchronization 필요한 이유 - Process는 병행하게, 또는 병렬로 실행될 수 있음 - 공유 데이터에 동시 접근하게 되면 data inconsistency 발생할 수 있음 - Cooperating process들의 질서있는 실행을 위한 메커니즘이 필요함 Synchronization 관련 용어 - 동기화: 한정적인 자원에 여러 thread가 동시 접근하면 문제 발생하므로 thread에게 처리 권한을 주거나 순서 조정 - Race Condition 경쟁상황: process 간 자원을 사용하려고 경쟁하는 것 - Critical Section 임계구역: 공유 자원에 접근하는 process 내부의 코드 영역 한 process가 이 영역을 수행 중일 때 다른 process가 자신의 영역 수행하면 문..
2023.10.11