본문 바로가기
~ 2024.03/컴퓨터 구조 + 운영체제

[컴퓨터 구조] 운영체제 시작하기

by Monett 2024. 1. 4.
반응형

혼자 공부하는 컴퓨터 구조 + 운영체제(강민철 저, 한빛미디어)를 공부하며 내용을 정리한 글 입니다.
현재 블럭의 내용은 작성자의 의견 혹은 생각이며, 틀린 내용이 있을 수 있습니다. 지적 감사드립니다.

 

운영체제란

프로그램 실행에 필요한 요소, CPU나 메모리 등을 시스템 자원이라고 부른다.

이러한 시스템 자원을 실행할 프로그램에 할당하고, 올바르게 실행되도록 돕는 프로그램이 운영체제다.

 

운영체제도 프로그램이기 때문에 메모리에 적재되어야하며, 특별한 프로그램이기 때문에 메모리 내 커널 영역에 적재된다.

커널 영역을 제외한 나머지 영역을 사용자 영역이라고 하며, 사용자의 응용 프로그램은 모두 사용자 영역에 적재된다.

 

사용자 영역에 프로그램이 겹치지 않게 적재하는 것도 운영체제의 역할이다.

또한, 메모리에서 필요하지 않은 프로그램 삭제, CPU 할당 등의 역할도 수행한다.


운영체제의 큰 그림

자원 관리, 프로그램 실행 관리 등 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다.

 

운영체제는 응용 프로그램들이 자원에 접근하려고 할때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다. 

이러한 기능은 이중 모드로써 구현된다. 이중 모드는 CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식이다.

  • 사용자 모드 : 운영체제 서비스를 제공받을 수 없는 실행 모드이며, 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행된다.
  • 커널 모드 : 운영체제 서비스를 제공받을 수 있는 실행 모드이다.

위 두 가지 모드는 플래그 레지스터의 슈퍼바이저 플래그를 보고 알 수 있다.

 

사용자 모드로 실행되는 프로그램이 운영체제 서비스를 제공받으려면 운영체제에 요청을 보내야 한다.

이를 시스템 호출 (시스템 콜) 이라고 한다.

 

시스템 호출은 일종의 소프트웨어 인터럽트이다.

따라서 인터럽트 처리 순서와 유사하게 작동한다. (사용자 모드 -> 백업 -> 커널 모드에서 루틴 실행 -> 다시 복귀)

운영체제의 핵심 서비스

  • 프로세스 관리 : 프로세스(실행중인 프로그램)를 번갈아가면서 실행하고 일목요연하게 관리한다. 프로세스 동기화를 수행하거나 교착상태를 해결하기도 한다.
  • 자원 접근 및 할당
    • CPU 스케줄링
    • 메모리 할당
    • 입출력장치 인터럽트 관리
  • 파일 시스템 관리 : 파일 생성, 삭제, 디렉토리 관리 등을 수행한다.
반응형