운영체제란 무엇인가?
운영체제(Operating System, OS)
컴퓨터 시스템의 자원을 관리하고 프로그램 실행을 지원하는 핵심 시스템 소프트웨어
컴퓨터는 크게 하드웨어와 소프트웨어로 구성된다
컴퓨터 시스템의 구성
하드웨어
- CPU
- 메모리
- 저장장치
- 입출력 장치
소프트웨어
-
응용 소프트웨어
사용자가 직접 사용하는 프로그램
예: 브라우저, 게임, 문서 작성 도구 -
시스템 소프트웨어
하드웨어 제어 및 응용프로그램 실행 지원
대표적인 예가 운영체제
운영체제의 역할
운영체제의 핵심 역할은 두 가지
자원 관리와 사용자 지원
자원 관리
관리 대상:
- 하드웨어 자원
- 소프트웨어 자원
- 데이터
여러 프로그램이 동시에 실행되는 환경
자원을 효율적으로 분배하고 시스템 안정성 유지
사용자 지원
- 사용자의 명령 해석 및 실행
- 사용자와 하드웨어 사이 매개체 역할
- 편리한 인터페이스 제공
운영체제가 없다면 사용자는 하드웨어를 직접 제어해야 하는 구조
운영체제가 없던 초기 컴퓨터
초기 컴퓨터에는 운영체제가 존재하지 않았다
- 응용프로그램이 직접 하드웨어 제어
- 개발자는 하드웨어 동작 원리까지 이해 필요
- 자원 공유 어려움
- 자원 분배 비효율적
운영체제 도입 이후,
하드웨어와 응용프로그램 사이에 중간 계층 형성
안정성과 효율성 대폭 향상
커널 모드와 사용자 모드
시스템 보호를 위해 CPU 실행 모드 구분
커널 모드
- 하드웨어 직접 제어 가능
- 운영체제 핵심 기능 동작 영역
- 높은 권한 보유
사용자 모드
- 하드웨어 직접 제어 불가
- 응용프로그램 실행 영역
- 시스템 보호를 위한 제한 구조
응용프로그램은 사용자 모드에서 동작
하드웨어 접근이 필요하면 시스템 호출 사용
커널
운영체제의 핵심 구성 요소
커널 모드에서 동작
주요 기능:
- 프로세스 관리
- 메모리 관리
- 장치 제어
- 파일 시스템 관리
응용프로그램과 하드웨어 사이 연결 역할 수행
커널 구조
일체형 커널
- 모든 서비스가 커널 내부에 포함
- 내부 요소 간 상호작용 빠름
- 일부 오류가 전체 시스템에 영향 가능
- 예: Unix, Linux
마이크로 커널
- 핵심 기능만 커널 내부에 포함
- 나머지 기능은 커널 외부에서 동작
- 확장성과 유지보수성 우수
- IPC 증가로 인한 성능 저하 가능
시스템 호출
응용프로그램은 사용자 모드에서 실행
하드웨어 직접 제어는 불가능
하드웨어 접근이 필요한 경우 → 시스템 호출
대표 예시:
- 파일 생성 및 삭제
- 메모리 할당
- 디스크 접근
- 네트워크 통신
사용자 모드에서 커널 모드로 전환되는 통로
운영체제의 구성 요소
자원의 성격에 따라 기능 구분
프로세스 관리자
- 프로세스 생성 및 삭제
- CPU 스케줄링
- 상태 관리
메모리 관리자
- 메모리 할당 및 회수
- 메모리 보호
- 주소 공간 관리
장치 관리자
- 입출력 장치 제어
- 장치 할당 및 반환
- 드라이버 관리
파일 관리자
- 파일 생성 및 삭제
- 접근 제어
- 저장장치 공간 관리
운영체제의 유형
운영 방식에 따라 구분
일괄처리 운영체제
- 작업을 모아 순차 처리
- 상호작용 없음
- 응답 시간 느림
시분할 운영체제
- 여러 사용자 작업을 번갈아 수행
- 대화형 운영체제
- 빠른 응답 제공
실시간 운영체제
- 정해진 시간 내 결과 제공
- 우선순위 기반 처리
- 항공기, 의료 장비 등에서 사용
분산 운영체제
- 여러 컴퓨터를 네트워크로 연결
- 자원을 하나의 시스템처럼 사용
- 확장성과 자원 활용도 향상
핵심 정리
- 컴퓨터 자원 관리 시스템 소프트웨어
- 사용자와 하드웨어 사이 매개체
- 커널은 핵심 구성 요소, 커널 모드에서 동작
- 시스템 호출은 사용자 모드 → 커널 모드 전환 메커니즘
- 다양한 자원 관리 기능과 운영 방식 존재