운영체제란?
운영체제(OS, Operating System)는 하드웨어 위에 설치되어 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층입니다.
운영체제는 컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 수행합니다.
운영체제의 목적
운영체제는 한정된 컴퓨터 자원을 관리하는 시스템으로 다음과 같은 목적을 가지고 있습니다.
- 처리 능력 향상 : OS는 자원 관리를 통해 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킵니다.
- 반환 시간 단축 : OS는 사용자가 시스템에 요청한 작업을 완료할 때까지 소요되는 시간을 단축시킵니다.
- 사용 가능도 향상 : OS는 사용자가 컴퓨터를 사용해야 할 때 자원을 즉시사용할 수 있도록 합니다.
- 신뢰도 향상 : OS는 입력 값에 대한 정확한 결과 값을 줄 수 있도록 신뢰도를 향상해야 합니다.
* 사용 가능도 : 시스템 자원을 얼마나 빨리 제공할 수 있는가를 의미
* 신뢰도 : 시스템이 주어진 문제를 정확하게 푸는지를 의미
CPU와 메모리 구조
CPU(Central Processing Unit, 중앙 처리 장치)는 컴퓨터의 "뇌" 역할을 하며, 컴퓨터에서 프로그램을 실행하는데 필요한 연산을 처리하고 수행하는 역할을 합니다.
메모리는 데이터를 저장하기 위한 기억 장치로, 휘발성 메모리인 주 기억장치와 비휘발성 메모리인 보조 기억 장치로 나뉩니다.
주 기억 장치는 일반적으로 RAM을, 보조 기억 장치는 SSD, HDD 등을 의미하며, 메모리는 CPU에서 빨리 접근할 수 있도록 다음과 같이 계층 구조로 나뉩니다.
Register와 Cache는 CPU 내부에 존재하며, Memory는 RAM을 의미하고, Disk는 하드 디스크를 의미합니다.
레지스터 (Register)
- CPU가 사용자 요청을 처리하는데 필요한 데이터를 임시로 저장하는 기억 장치입니다.
- CPU 내부에 존재하며, 접근 속도가 매우 빠릅니다.
캐시 (Cache)
- CPU와 RAM 사이의 속도 차이를 해결하기 위한 기억 장치 입니다.
- CPU 내부에 위치하며 접근 속도가 레지스터 다음으로 빠릅니다.
메모리 - RAM (Random Access Memory)
- 컴퓨터 프로그램을 실행할 때 필요한 정보를 저장하는 기억 장치입니다.
디스크 - Hard Disk
- 사용자가 필요한 데이터와 프로그램을 저장하는 비휘발성 기억장치입니다.
프로그램을 실행하면 OS가 디스크에 있는 프로그램을 메모리에 로드하며, 이 때 로드된 프로그램을 프로세스라고 합니다. CPU는 하나의 프로세스만 처리할 수 있어서, 멀티 프로세스 환경에서는 OS가 스케줄링을 통해 CPU에 프로세스를 할당합니다.
커널이란?
커널(Kernel)은 OS의 핵심 요소로, 컴퓨터 하드웨어와 프로세스의 보안, 자원 관리, 하드웨어 추상화 같은 중요한 역할을 수행합니다. 특히 자원 관리를 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등을 담당합니다.
OS는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 모드를 다음과 같이 나눠 관리합니다.
커널 모드(Kernel Mode)
- 커널 모드에서는 하드웨어에 직접 겁근해 메모리, CPU와 같은 자원을 사용할 수 있습니다.
사용자 모드(User Mode)
- 커널 모드의 자원에 접근할 수 없게 제한을 두어 프로그램의 자원에 함부로 침범하지 못하는 모드입니다.
시스템 콜
시스템 콜(System Call)은 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수입니다.
즉, 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 한다는 의미입니다. 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환합니다.
시스템 콜을 사용해 프로세스 제어, 파일 조작, 장치 관리 등이 가능하며 대표적인 예로는 프로세스를 생성하는 fork(), 부모 프로세스가 자식 프로세스이 수행을 기다리는 wait() 등이 있습니다.
해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
이수진, ⌜기술면접대비 CS전공 핵심요약집⌟, (주)도서출판 길벗
'CS지식 > 운영체제' 카테고리의 다른 글
교착 상태(Deadlock)와 스레드 안전(Thread Safe) (0) | 2025.02.03 |
---|---|
프로세스 동기화 (0) | 2025.02.01 |
동시성과 병렬성, 멀티 프로세스와 멀티 스레드 (0) | 2025.01.31 |
PCB(Process Control Block), 프로세스의 생성, 프로세스 상태도 (0) | 2025.01.30 |
프로세스, 메모리 구조 (0) | 2024.11.05 |