운영체제는 컴퓨터 하드웨어와 소프트웨어 간의 중개자 역할을 하며, 시스템 자원을 관리하고 사용자와 컴퓨터 간의 상호작용을 돕는 소프트웨어입니다.
3.1.1 운영체제의 역할과 구조
운영체제는 컴퓨터 자원을 관리하고 사용자 요청을 처리합니다. 커널, 시스템 호출, 인터페이스 등으로 구성되며, 자원 관리, 프로세스 관리, 파일 시스템 관리 등의 역할을 수행합니다.
3.1.2 컴퓨터의 요소
컴퓨터는 CPU, 메모리, 저장장치, 입출력 장치로 구성됩니다. 각 요소는 운영체제의 관리 하에 통합적으로 작동합니다.
메모리는 데이터를 일시적으로 저장하는 공간으로, CPU가 빠르게 데이터를 처리할 수 있게 돕습니다.
3.2.1 메모리 계층
메모리 계층은 CPU에 가까운 캐시 메모리부터 RAM, 하드디스크까지로 구성되어 있습니다. 가까울수록 속도는 빠르지만 용량이 작고, 멀수록 속도는 느리지만 용량이 큽니다.
3.2.2 메모리 관리
운영체제는 메모리 공간을 효율적으로 할당하고 회수하여 프로그램이 원활히 실행될 수 있게 관리합니다.
프로세스는 실행 중인 프로그램을 의미하며, 스레드는 프로세스 내에서 실행되는 작업 단위입니다.
3.3.1 프로세스와 컴파일 과정
프로세스는 프로그램이 실행되어 메모리에 적재된 상태를 말하며, 컴파일 과정은 소스코드를 기계어로 변환하여 실행 가능하게 만듭니다.
3.3.2 프로세스의 상태
프로세스는 준비(ready), 실행(running), 대기(waiting) 등의 상태를 거치며 CPU에서 실행됩니다.
3.3.3 프로세스의 메모리 구조
프로세스는 코드, 데이터, 힙, 스택으로 나뉘어 메모리에 저장됩니다.
3.3.4 PCB (Process Control Block)
PCB는 프로세스의 상태, 메모리 위치, 우선순위 등 프로세스 정보를 담고 있는 데이터 구조입니다.
3.3.5 멀티프로세싱
멀티프로세싱은 여러 프로세스를 동시에 실행하여 시스템의 성능을 높이는 기법입니다.
3.3.6 스레드와 멀티스레딩
스레드는 프로세스 내의 작업 단위이며, 멀티스레딩은 하나의 프로세스에서 여러 스레드를 병렬로 실행하는 것을 말합니다.
3.3.7 공유 자원과 임계 영역
임계 영역은 동시에 접근할 경우 문제가 발생할 수 있는 공유 자원 영역으로, 스레드나 프로세스의 동기화가 필요합니다.
3.3.8 교착 상태
교착 상태는 두 개 이상의 프로세스가 서로가 점유한 자원을 기다리며 무한히 대기하는 상황입니다.
CPU 스케줄링 알고리즘은 CPU를 효율적으로 할당하여 성능을 높이는 방법을 다룹니다.
3.4.1 비선점형 방식
비선점형 방식은 프로세스가 CPU를 점유하면 작업이 완료될 때까지 CPU를 양보하지 않는 방식입니다. 예시로는 FIFO(First In First Out) 방식이 있습니다.
3.4.2 선점형 방식
선점형 방식은 프로세스가 CPU를 점유하는 동안, 더 높은 우선순위의 작업이 있으면 CPU를 양보하는 방식입니다. 예시로는 라운드 로빈(Round Robin) 방식이 있습니다.
댓글 영역