스레드의 장점 1. 응답성 - 프로세스의 일부가 막혀도 실행될 수 있으며, 이는 유저 인터페이스에서 중요하다. - 예를 들어, 사용자 인터페이스 스레드와 백그라운드 작업 스레드를 분리하여 사용자가 프로그램의 응답성을 유지사면서 긴 작업을 처리할 수 있다. 2. 자원 공유 - 스레드는 프로세스의 자원을 공유하므로 메모리 공유나 message passing이 더 쉽다. - 스레드는 프로세스의 주소 공간을 공유하므로 변수 등의 데이터를 효율적으로 공유하여 작업을 처리할 수 있다. 3. 경제성 - 스레드는 프로세스 내에서 생성되는 것이므로 프로세스를 만드는 것보보다 메모리 및 자원 사용 측면에서 경제적이다. - context switching 보다 thread switching이 overhead가 더 적다. 4..
Deadlock프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태로 ‘교착 상태’라고도 한다. System model- CPU, files, I/O device 등의 리소스들은 R로 표현- 각 리소스 R은 인스턴스 W를 가짐(R이 CPU라면 W는 CPU 코어들)- Request , use, release Deadlock 발생조건1. Mutual exclusion – 하나의 리소스는 하나의 스레드만 사용할 수 있다.2. Hold and wait – 이미 하나의 리소스를 가지고 있고 추가적으로 다른 스레드의 리소스를 원할 때3. No preemption – 리소스를 한번 가져가면 작업을 수행하기 전까지는 리소스를 release하지 않는다.4. Circular wait – wait cy..
Race condition 공유 데이터에 대한 엑세스가 제어되지 않았을 때 경쟁 상태(race condition)가 존재하며, 데이터 값이 손상될 수 있다. 실행결과는 엑세스가 수행되는 순서에 따라 달라진다. Critical section 각 프로세스는 critical section이라는 코드의 한 부분을 가지고 있다. 한 프로세스가 critical section에 접근했으면 다른 프로세스는 기다려야 한다. entry section: entry section에서 critical section에 접근하겠다고 요청, 허가되면 들어가고 아니면 entry section에서 기다려야함 exit section: 프로세스가 exit section으로 나오며 critical section을 빠져나왔다고 알리면 다른 프..
Multiprogramming: CPU를 최대한 이용해서 여러 프로그램을 concurrently하게 실행 운영체제에 의해 Kernel level 스레드가 scheduled 됨 보통 CPU 처리(CPU burst)와 IO를 기다리는 것(I/O burst)이 번갈아 가면서 수행됨 CPU bound program: IO burst가 얼마 없어서 CPU Burst가 길고 끊김이 별로 없는 프로그램 IO bound program: IO burst가 많아서 CPU Burst가 짧고 여러 개인 프로그램 CPU scheduler: ready queue에 있는 프로세스를 골라 CPU에 돌림 Preemptive & Nonpreemptive Nonpreemptive scheduling: 동작하는 프로세스가 실행이 끝날 때까..
Memory Layout Text section: program code Data Section: (initialized and uninitialized) global variable Stack section: temporary data(function parameter, return address, local variable) Heap section: memory dynamically allocated during runtime Process state PCB 운영체제가 프로세서를 제어하기 위해 정보를 저장해 놓은 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다. Process state: running, waiting etc Program counter: 다음 수행할 명령어의 위치 CPU regi..
Operating System 운영체제(Operating System, OS)는 컴퓨터 시스템에서 하드웨어와 소프트웨어 사이의 인터페이스 역할을 수행하는 시스템 소프트웨어이다. 운영체제는 컴퓨터 자원을 효율적으로 관리하고, 사용자 및 응용 프로그램에게 필요한 서비스를 제공하는 역할을 한다. User Programs Operating system Hardware Interrupt 인터럽트(interrupt)는 컴퓨터 시스템에서 발생하는 중단 신호를 말한다. 이는 운영체제나 하드웨어 디바이스가 프로세서의 실행을 일시적으로 중단시키고, 특정 이벤트에 대한 처리를 수행하도록 하는 메커니즘이다. 인터럽트가 발생하면 현재 실행 중인 작업이 일시적으로 중단되고, 해당 인터럽트를 처리하는 인터럽트 서비스 루틴(ISR)..