2024/08/11 4

운영 체제의 모드와 시스템 콜

커널 (Kernel)커널은 운영체제의 핵심 부분으로, 시스템 하드웨어와 사용자 응용 프로그램 간의 중개자 역할을 한다.역할:시스템 자원 관리: CPU 스케줄링, 메모리 관리, 파일 시스템 관리, I/O 장치 관리 등을 통해 시스템 자원을 효율적으로 관리한다.보안 및 보호: 프로그램이 하드웨어 자원에 직접 접근하지 못하도록 보호하고, 시스템의 무결성을 유지한다.프로세스 관리: 프로세스 생성, 스케줄링, 동기화 및 통신을 처리하며, 각 프로세스가 서로 간섭 없이 실행될 수 있도록 관리한다.인터페이스 제공: 시스템 콜을 통해 응용 프로그램이 커널의 기능을 사용할 수 있는 인터페이스를 제공한다. 유저 모드 (User Mode)유저 모드는 일반 사용자 프로그램이 실행되는 보호된 실행 모드이다. 이 모드에서는 프로..

CS 2024.08.11

CPU Scheduler & Dispatcher

CPU Scheduler역할: 스케줄러는 준비 상태(ready state)에 있는 여러 프로세스 중에서 다음에 CPU를 할당받을 프로세스를 선택하는 역할을 한다. 스케줄러는 CPU 자원을 어떤 프로세스에게, 언제 할당할지를 결정하는 정책을 구현한다. 이 과정에서 스케줄러는 프로세스의 우선순위, 프로세스의 도착 시간, CPU 사용 시간 등 다양한 요소를 고려하여 선택한다.작동 방식: CPU 스케줄러는 레디 큐(Ready Queue)에서 실행 가능한 프로세스 중 하나를 선택하여 실행을 결정한다. 스케줄링 알고리즘에 따라 선택 기준이 달라질 수 있다.Ready Queue레디 큐는 실행 준비가 된 프로세스들이 대기하고 있는 큐를 말한다. 프로세스가 생성되거나 입출력 작업을 마친 후, 실행을 위해 이 큐에 추가된..

CS 2024.08.11

프로세스/스레드 상태 변화

프로세스 상태 변화프로세스 상태 변화는 운영체제에서 프로세스가 생성되고 종료될 때까지의 다양한 상태 전환을 설명하는 개념이다. 프로세스는 여러 가지 이유로 상태가 변할 수 있으며, 이러한 상태 변화는 운영체제의 스케줄링 및 자원 관리와 밀접하게 연관되어 있다. 프로세스 상태상태설명New (생성)- 새로운 프로세스가 생성된 상태- 이 상태에서 프로세스는 아직 큐에 들어가지 않았으며, 필요한 초기화 작업이 진행중이다.Ready (준비)- 프로세스가 실행될 준비가 된 상태- 여러 프로세스가 이 상태에 있을 수 있으며, 이들 중 하나가 스케줄러에 의해 선택되어 실행된다.Running (실행)- 프로세스가 CPU를 할당받아 실제로 실행 중인 상태- 이 상태에서 프로세스는 CPU에서 명령을 수행한다.Waiting ..

CS 2024.08.11

Deadlock

교착상태(Deadlock)란?동기화 기법을 사용하는 시스템에서 두 개 이상의 프로세스나 스레드가 서로가 가진 리소스를 기다리면서 무한 대기에 빠지는 상태를 의미한다. 데드락 발생의 네 가지 조건데드락이 발생하려면 다음 네 가지 조건이 모두 충족되어야 한다. 이 조건들 중 하나라도 충족되지 않으면 데드락이 발생하지 않는다.Mutual Exclusion (상호 배제): 자원은 한 번에 하나의 프로세스만 사용할 수 있다.Hold and Wait (점유 및 대기): 최소한 하나의 자원을 점유한 상태에서 다른 자원을 추가로 요청하며, 해당 자원이 할당될 때까지 대기하는 프로세스가 있다.No Preemption (비선점): 다른 프로세스에 할당된 자원을 강제로 빼앗을 수 없다. 자원을 사용하는 프로세스는 자발적으로..

CS 2024.08.11