운영체제란 무엇인가?
운영체제(Operating System, OS)는 하드웨어와 소프트웨어 사이에서 중재 역할을 하는 핵심 시스템 소프트웨어다.
사용자가 프로그램을 실행하거나 파일을 저장하는 것처럼 단순한 행동을 하더라도, 그 이면에서는 운영체제가 CPU, 메모리, 저장 장치 같은 자원을 알맞게 배분하고 관리하고 있다.
운영체제가 필요한 이유
- CPU - 연산을 수행하는 두뇌
- 메모리(RAM) - 프로그램과 데이터를 임시로 보관
- 파일 시스템(디스크) - 영구 저장 공간
여러 프로그램이 동시 실행될 때, 이 자원들을 아무 통제 없이 쓰게 되면 충돌, 속도 저하, 보안 문제가 발생한다. 이 자원들을 효율적이고 안전하게 분배하는 역할을 운영체제가 수행한다.
운영체제의 주요 목적
- 자원 관리(Resource Management)
- CPU, 메모리, 디스크 등의 하드웨어 자원을 효율적으로 배분
- 추상화(Abstractino)
- 복잡한 하드웨어 기능을 단순한 인터페이스로 감싸서 제공
- 예: "파일 열기" = 실제로는 수천 번의 디스크 연산
- 보호 및 격리(Security & Isolation)
- 프로그램 간 간섭 방지, 시스템 안정성 유지
CPU 관리 - 누가 언제 실행될지 결정한다
운영체는 CPU를 사용하는 작업 단위(Process)들을 관리한다. CPU는 한 번에 하나의 명령어만 실행할 수 있기 때문에, 여러 프로세스를 빠르게 교대로 실행해 마치 동시에 돌아가는 것처럼 만든다. 이 과정을 스케줄링(Scheduling)이라고 한다.
운영체제의 역할
- 실행 중인 프로세스 간 컨텍스트 스위칭 수행
- 우선순위, 응답 시간 등을 고려해 스케줄링 알고리즘 적용
- CPU 자원을 공정하고 효율적으로 배분
*컨텍스트 스위칭: 하나의 CPU가 여러 프로그램을 빠르게 번갈아가며 실행하려면 "지금 하던 일을 잠시 저장하고, 다른 일을 이어서 해야 한다."
예시
- 사용자가 앱 3개를 동시에 켜도 CPU는 순간순간 빠르게 교체하면서 처리한다.
- 개발자는 CPU를 직접 통제할 수 없고, OS를 통해 요청할 뿐이다.
메모리 관리 - 누가 얼만큼, 어디를 쓸지 결정한다
RAM은 유한한 공간이다. 운영체제는 프로그램마다 필요한 메모리 공간을 적절히 할당하고, 서로 침범하지 않도록 격리한다.
운영체제의 역할
- 가상 메모리(Virtual Memory)
- 각 프로세스에 고유한 주소 공간을 제공해 충돌 방지
- 페이징(Paging)
- 실제 물리 메모리를 작은 단위로 쪼개어 관리
- 메모리 보호
- A라는 앱이 B의 메모리에 접근하지 못하도록 방지
예시: 프로그램이 변수 하나를 선언하면 실제 주소는 OS가 배정한다.
파일 시스템 관리 - 데이터를 어디에 어떻게 저장할지 책임진다
운영체제는 SSD/HDD에 데이터를 구조화된 방식으로 저장하고 검색할 수 있도록 돕는다. 파일 하나를 저장한다는 건, 사실 여러 블록에 나눠 저장하고, 메타데이터까지 함께 관리하는 복잡한 작업이다.
운영체제의 역할
- 디스크의 데이터를 파일/디렉토리 구조로 추상화
- 읽기/쓰기 요청 처리(I/O 관리)
- 파일 권한, 소유자, 타임스탬프 등 메타데이터 관리
- 버퍼링 / 캐싱으로 디스크 접근 최적화
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
[컴퓨터공학/운영체제] 멀티프로세스 vs 멀티스레드, 기초부터 이해하기 (0) | 2025.03.27 |
---|