IT

혼공단 4주차 (1) 운영체제 시작하기 (책 챕터9, 유투브 23강~24강)

BoBooBoo 2023. 2. 5. 23:45
반응형

 

 

목차

Chapter 09. 운영체제 시작하기

  1. 9-1. 운영체제를 알아야 하는 이유
  2. 9-2. 운영체제의 큰 그림

 

 

운영체제...?

  • Windows, Android, MacOS, iOS, Linux, ...
  • 모든 프로그램은 실행을 위해 컴퓨터의 네 가지 핵심 부품을 포함해서 (시스템) 자원, Resource 를 필요로 한다.
  • 운영체제는 실행할 프로그램에 자원을 할당하고 올바르게 실행되도록 돕는 특별한 프로그램
  • 운영체제도 프로그램이기 때문에 메모리에 적재되는데, 커널 (Kernel) 영역에 들어감
  • 워드 프로세서, 인터넷 브라우저, 메모장 등과 같은 일반적인 응용프로그램 (Application Software) 은 사용자 (User) 영역에 적재
  • 하드웨어 등 컴퓨터의 자원을 응용 프로그램에서 어떻게 효율적으로 관리하고 사용할 수 있는지...

 

 

 

 

운영체제가 없다면? 운영체제가 없이 응용프로그램을 개발한다면?

  • 하드웨어를 직접 접근하는 부분을 구현해야 함
  • 프로그램을 메모리에 적재하는 코드, CPU 가 어떻게 동작할지, 모니터에는 어떻게 출력할 것인지 등 모든 것을 직접 개발해야 함.. (복잡)

 

운영체제를 왜 알아야 할까?

  • 운영체제는 사용자를 위한 프로그램이 아니다
  • 운영체제는 프로그램을 위한 프로그램이다!!
  • 개발한 프로그램에서 문제가 발생한다면 가장 먼저 운영체제에게 도움을 받아야 함! (e.g. 오류 메시지)

 

 

keyword:

  • 커널
  • 운영체제의 서비스 종류
  • 시스템 콜과 이중 모드

 

커널 Kernel, 운영체제의 심장

  • 운영체제가 제공하는 기능은 다양하지만 가장 핵심적인 서비스가 존재하며 이를 커널이 담당
  • 자원을 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 등
  • 커널에 속하지 않는 기능? e.g. UI (User Interface)

 

이중모드와 시스템 호출

  • 사용자가 실행하는 프로그램은 자원에 직접 접근할 수 있을까? NO!
  • 여러 응용 프로그램 간 충돌이 발생하거나 잘못된 행동을 할 경우 다른 프로그램에 영향을 줄 수 있음
  • 응용 프로그램들은 운영체제에게 자원의 접근을 요청함

 

 

이중 모드

  • CPU 가 명령어를 실행하는 모드는 사용자 모드(0)커널 모드(1)로 구분
  • 플래그 레지스터의 슈퍼바이저 플래그 값으로 구분

 

사용자 모드, User Mode

  • 운영체제 서비스를 제공받을 수 없는 실행 모드
  • 커널 영역의 코드를 실행할 수 없음
  • 자원 접근 불가

 

커널 모드, Kernel Mode

  • 운영체제의 서비스를 제공받을 수 있는 실행 모드
  • 자원 접근을 비롯한 모든 명령어 실행 가능
  • 일종의 소프트웨어 인터럽트인 시스템 호출 (system call) 을 이용해서 전환

 

시스템 호출이 실행되는 방식

  1. 사용자 영역의 응용 프로그램에서 시스템 호출
  2. 커널 영역의 운영체제에서 운영체제 코드 실행
  3. 사용자 역영의 응용프로그램으로 시스템 호출 복귀

 

시스템 호출 종류

 

운영체제의 핵심 서비스

1. 프로세스 관리

  • 프로세스는 실행 중인 프로그램으로 수많은 프로세스들이 동시에 실행
  • 동시다발적으로 실행되는 프로그램들이 생성, 실행, 삭제되는 것을 일목요연하게 관리
  • 어떻게 관리할 수 있을까? 프로세스와 스레드, 프로세스 동기화, 교착상태 해결 등

 

2. 자원 접근 및 할당

  • CPU 스케줄링 : 어떤 프로세스를 먼저, 얼마나 오래 실행할까?
  • 메모리 : 메모리를 어떻게 효율적으로 할당하고 해제할 수 있을까? e.g. 페이징, 스와핑 등
  • 입출력장치 : 인터럽스 서비스 루틴

 

3. 파일 시스템 관리

  • 관련된 정보를 파일이라는 단위로 저장 장치에 보관
  • 파일들을 묶어 폴더 (디렉토리) 단위로 저장 장치에 보관

 

 

끝.

 

 

 

 

 

 

 

 

 

 

반응형