스터디/운영체제

[혼자 공부하는 컴퓨터구조와 운영체제] 9_운영체제 시작하기

왹져박사 2025. 4. 18. 16:57

💡

  • 운영체제가 무엇인지
  • 개발자가 운영체제를 알아야 하는 이유
  • 커널이 무엇인지
  • 시스템 호출과 이중 모드
  • 운영체제가 제공하는 핵심 서비스의 종류

1) 운영체제를 알아야 하는 이유

운영체제란

프로그램 실행에 필요한 요소: 시스템 자원 / 자원 (CPU, 메모리, 보조기억장치, 입출력장치 등)

실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램: 운영체제

항상 컴퓨터가 부팅될 때 메모리 내 커널 영역이라는 공간에 따로 적재되어 실행

영역: 커널 영역 + 사용자 영역

→ 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원 할당과 실행을 도움

 

운영체제의 역할

  • 운영체제는 실행할 프로그램을 메모리에 적재, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원 관리
  • 공정하게 여러 프로그램에 CPU 자원을 할당
  • 응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당, 실행 관리

 

운영체제를 알아야 하는 이유

운영체제가 하드웨어를 조작하고 관리하는 기능 제공

하드웨어와 프로그램을 더 깊이 이해하여 문제의 원인 찾기 가능

 

 

2) 운영체제의 큰 그림

운영체제의 심장, 커널

운영체제의 핵심 서비스를 담당하는 부분: 커널

커널에 포함되지 않는 서비스: 사용자 인터페이스(그래픽 유저 인터페이스 GUI, 커맨드 라인 인터페이스 CLI)

 

이중 모드와 시스템 호출

운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 자원 보호 → 이중 모드로써 구현

이중 모드

CPU가 명령어를 실행하는 모드를 사용자 모드/커널 모드로 구분하는 방식

 

사용자 모드:

운영체제 서비스를 제공받을 수 없는 실행 모드. 일본적인 응용 프로그램의 실행방법. 자원에 접근 X.

 

커널 모드:

운영체제 서비스를 제공받을 수 있는 실행 모드. 자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능. 자원 접근 가능.

→ CPU가 사용자 모드/커널 모드로 실행 중인지 플래그 레지스터 속 슈퍼바이저 플래그에서 알 수 있음

 

시스템 호출(시스템 콜)

사용자 모드 실행 프로그램이 커널 모드로 전환되기 위하여 요청

소프트웨어적 인터럽트: 인터럽트를 발생시키는 특정 명령어에 의해 발생

일반적으로 응용 프로그램은 실행 과정에서 빈번하게 시스템 호출 발생시킴.

 

운영체제의 핵심 서비스

프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리

 

프로세스 관리

다양한 프로세스를 관리/실행

여러 프로세스가 동시에 실행되는 환경 → 프로세스 동기화 필수, 교착상태 해결

 

자원 접근 및 할당

CPU

프로세스들에 공정하게 CPU 할당: CPU 스케줄링

메모리

새로운 프로세스가 적재될 때 어느 주소에 적재할지 결정

입출력장치

인터럽트 서비스 루틴 제공 → 입출력 작업

 

파일 시스템 관리

보조기억장치 속 데이터를 파일과 디렉터리로 관리