[OS] 운영체제란 무엇인가?
3줄 요약
운영체제는 자원을 효율적으로 관리하며 프로그램을 실행하게 하는 핵심 소프트웨어
사용자 모드와 커널 모드를 구분하여 자원 보호 및 시스템 안정성 확보
자원 접근은 커널 모드로 전환하는 시스템 호출을 통해 수행됨
💻 컴퓨터 구조 & 운영체제 시리즈
이 시리즈는 『혼자 공부하는 컴퓨터 구조+운영체제』 (강민철 저)
+ 인프런 강의를 기반으로 개인적으로 복습 및 정리한 기록입니다.
📌 운영체제란?
프로그램을 위한 프로그램
→ 사용자가 실행하는 모든 프로그램이 올바르게 동작하도록 하드웨어와의 연결을 중개해주는 역할
→ 즉, 하드웨어와 소프트웨어 사이의 다리 역할을 하는 필수 시스템 소프트웨어
자원 / 시스템 자원
→ 프로그램 실행에 있어 마땅히 필요한 요소
→ 컴퓨터의 네 가지 핵심 부품 포함- 실행할 프로그램에 필요한 자원을 할당
- 프로그램이 올바르게 실행되도록 돕는 프로그램
프로그램이기 때문에 메모리에 적재되어 실행
→ 운영체제가 적재되는 부분을 커널 영역이라고 함
→ cf) 응용 프로그램은 사용자 영역에 적재 → 사용자 영역과 커널 영역을 나누는 이유는 시스템 자원을 보호하고, 오류나 공격으로부터 시스템을 안전하게 지키기 위함- 메모리 관리
- CPU 관리
- 입출력장치 관리
운영체제 없이 개발하는 일은 절대 없어야 한다. 끔찍하다.
하드웨어를 직접 조작해야 한다? 말도 안 됨.
🧠 커널 (≒운영체제, Kernel)
운영체제의 핵심 서비스를 담당하는 부분
cf) 운영체제에는 속하지만 커널에는 속하지 않는 것 → UI (User Interface)
- 사용자가 사용하는 프로그램이 자원에 직접 접근하는 것은 위험
- 운영체제가 중간에서 자원을 보호하고, 간접적으로 접근하도록 제어
- 응용 프로그램은 자원 접근 시 운영체제 코드를 반드시 실행해야 함
🔐 이중 모드 (Dual Mode)
CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분
사용자 모드
- 운영체제 서비스를 제공받을 수 없음
- 커널 영역 코드 실행 불가
- 자원 접근 불가
커널 모드
- 운영체제 서비스 제공 가능
- 자원 접근 및 모든 명령어 실행 가능
🔁 시스템 호출 (System Call)
- 커널 모드로 전환하여 OS 기능을 수행하기 위한 호출
- 일종의 소프트웨어 인터럽트 → 하드웨어 인터럽트 처리 방식과 유사
- 시스템 호출은 파일 열기, 데이터 읽기/쓰기, 프로세스 생성, 종료 등의 작업에서 사용됨
- 예: read(), write(), fork(), exec(), exit() 등
📂 운영체제의 주요 역할
프로세스 관리
→ CPU를 사용할 수 있도록 프로세스를 생성, 실행, 종료하는 전 과정을 관리자원 접근 및 할당
→ 메모리, CPU 시간, 입출력 장치 등 시스템 자원을 각 프로그램에 적절히 분배파일 시스템 관리
→ 데이터를 디스크에 저장하고, 읽고, 쓰는 파일 관련 기능을 제공
✅ 마무리 정리
운영체제는 단순히 프로그램을 실행하는 게 아니라,
자원을 효율적으로 관리하고 보호하며,
모든 프로그램이 안전하게 돌아갈 수 있도록 중재자 역할을 수행함
📚 참고 자료
- 『혼자 공부하는 컴퓨터 구조+운영체제』 - 강민철 저
- 인프런 강의 - 혼자 공부하는 컴퓨터 구조+운영체제 기반 강의
읽어주셔서 감사합니다 🙌
내용이 도움이 되었거나, 틀린 부분이 있다면 댓글이나 GitHub Issue로 알려주세요 😊