운영체제
운영체제는 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하고, 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 핵심 소프트웨어다. 사용자와 하드웨어 간의 인터페이스 역할을 하며, 효율적인 자원 관리를 통해 시스템의 성능을 최적화한다.
일반적으로 SSD 또는 HDD에 설치되며, 컴퓨터 부팅과 동시에 메모리에 로드되어 실행된다.
프로세스는 실행 중인 프로그램의 인스턴스로, 작업을 수행하는 기본 단위다. 운영체제는 프로세스를 관리하며, 프로세스는 실행 중 여러 상태를 거친다.
New (생성)
- 프로세스가 생성된 상태로, 아직 실행 준비가 완료되지 않았다.
Ready (준비)
- 실행 준비를 마치고 CPU 할당을 기다리는 상태다.
Running (실행 중)
- CPU를 할당받아 명령어를 실행하는 상태다.
Waiting (대기)
- I/O 작업이 완료될 때까지 기다리는 상태다.
Terminated (종료)
- 모든 작업을 완료하고 운영체제가 프로세스를 정리하는 상태다.
Suspend Ready (준비 중단)
- 메모리 부족 등의 이유로 보조 기억장치로 이동된 준비 상태의 프로세스다.
Suspend Waiting (대기 중단)
- 대기 상태의 프로세스가 보조 기억장치로 이동된 경우다.
운영체제는 프로세스를 효과적으로 관리하기 위해 두 가지 핵심 요소를 사용한다.
- 일정 관리자(Scheduler): 새로운 프로세스를 추가하고 완료된 프로세스를 제거한다.
- 실행 관리자(Dispatcher): 프로세스의 실행 순서와 CPU 할당 시간을 조정한다.
교착 상태 (Deadlock)
교착 상태는 여러 프로세스가 서로 자원을 점유한 채 대기하면서 무한정 정체되는 현상이다. 이로 인해 시스템 성능이 저하되거나 작업이 중단될 수 있다.
발생 조건
상호 배제(Mutual Exclusion)
- 특정 자원을 한 번에 하나의 프로세스만 사용할 수 있다.
점유 및 대기(Hold and Wait)
- 프로세스가 하나 이상의 자원을 점유한 채 추가 자원을 요청하며 대기하는 상태다.
비선점(No Preemption)
- 점유한 자원을 강제로 회수할 수 없다.
순환 대기(Circular Wait)
- 여러 프로세스가 서로의 자원을 기다리는 순환 구조를 형성한다.
해결 방법
교착 상태 예방(Deadlock Prevention)
- 발생 조건 중 하나 이상을 제거하여 교착 상태를 원천적으로 방지한다.
- 예를 들어, 자원을 공유 가능하게 하거나 모든 자원을 한 번에 요청하도록 강제한다.
교착 상태 회피(Deadlock Avoidance)
- 시스템이 교착 상태가 발생하지 않도록 사전에 검사하여 안전한 상태를 유지한다.
- 은행가 알고리즘(Banker's Algorithm)을 활용하여 자원 요청을 시뮬레이션하고 안전 여부를 판단한다.
교착 상태 감지(Deadlock Detection)
- 시스템을 모니터링하여 교착 상태를 감지하고 해결한다.
- 자원 할당 그래프(Resource Allocation Graph)를 분석하여 순환 구조를 찾아낸다.
교착 상태 복구(Deadlock Recovery)
- 일부 프로세스를 종료하거나 자원을 강제로 회수하여 교착 상태를 해소한다.
운영체제는 이러한 기법을 활용하여 시스템이 원활하게 동작할 수 있도록 관리한다.
'기록 > 운영체제' 카테고리의 다른 글
리눅스 (1) | 2025.03.17 |
---|---|
스레드 Thread (1) - 하드웨어와 소프트웨어 (0) | 2024.07.08 |
운영체제(9) - 입출력 시스템과 디스크 관리 (0) | 2022.12.07 |
운영체제(8) - 가상 메모리 (0) | 2022.11.28 |
운영체제(7) - 페이징, 세그먼테이션, 페이지화된 세그먼테이션 (0) | 2022.11.21 |