CS/Operating System 3

멀티 프로그래밍, 멀티 태스킹, 멀티 프로세싱, 멀티 스레딩

단일 프로세스 (Single Process)단일 프로세스초창기 컴퓨터는 단일 프로세스 시스템이었음한 번에 하나의 프로그램만 실행할 수 있었고 만약 다른 프로그램을 실행하고 싶다면 현재 프로그램을 종료 후 실행시켜야 했다.단점한 번에 하나의 프로그램만 실행 가능CPU 사용률도 좋지 않음프로그램 실행 도중 I/O 작업이 발생하면 CPU 프로세스는 I/O 작업을 기다리느라 아무것도 못하는 상태가 된다. 멀티 프로그래밍(Multi Programming)멀티 프로그래밍이란?단일 프로세스(Single Process)의 문제를 해결하기 위해 여러 개의 프로그램을 메모리에 올려놓고 하나의 CPU에서 번갈아 가면서 동시에 실행시키는 방법을 고안즉! 단일 프로세서(CPU 코어가 한 개) 환경에서 여러 프로그램을 동시에 실..

CS/Operating System 2025.01.23

교착 상태(Deadlock) 및 은행원 알고리즘(Banker’s Algorithm)

데드락(Deadlock)은 두 개 이상의 프로세스나 스레드가 서로가 점유한 자원을 기다리며 영원히 진행되지 못하는 상태를 의미데드락 발생 조건 (Coffman Conditions)데드락은 다음 4가지 조건이 모두 동시에 성립할 때 발생상호 배제 (Mutual Exclusion): 한 번에 하나의 프로세스만 자원을 사용할 수 있다.자원이 공유가 불가능하다면, 다른 프로세스는 그 자원이 해제될 때까지 기다려야 한다.점유 및 대기 (Hold and Wait): 자원을 점유한 상태에서 다른 자원을 요청하며 대기한다.예를 들어 Process1이 Resource 1을 점유하면서 Resource 2를 요청해서 기다리는 경우비선점 (No Preemption): 이미 할당된 자원을 강제로 빼앗을 수 없다.자원을 점유한 ..

CS/Operating System 2025.01.15

Critical Section / 세마포어(Semaphore) / 뮤텍스(Mutex)

임계 영역(Critical Section)임계 구역(Critical Section)은 공유 자원(Shared Resource)에 여러 스레드나 프로세스가 동시에 접근할 경우 문제가 발생할 수 있는 프로그램의 코드 영역을 의미한다.❗문제 발생 공유 자원은 여러 프로세스/스레드가 동시에 접근할 경우 임계 구역 안에서 데이터 불일치 또는 경쟁 상태(Race Condition)를 초래할 수 있다.임계 구역 문제를 해결하려면 한 번에 하나의 스레드만 해당 코드 영역에 진입하도록 제한해야 한다.🛠️ 해결 방법뮤텍스(Mutex), 세마포어(Semaphore) 등의 동기화 메커니즘을 사용하여 한 번에 하나의 스레드만 임계 구역에 접근하도록 보장한다.💡 이해하기 쉬운 예시은행 계좌에서 두 개의 ATM 스레드가 동시에..

CS/Operating System 2025.01.15