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

diveintoo·2024년 3월 7일
0

혼공컴운

목록 보기
9/15
post-thumbnail

📑 본 글은 <혼공컴운>을 읽고 정리한 글입니다.

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

1-1. 운영체제란

시스템 자원

  • 프로그램이 실행되기 위해 필요한 요소들
  • CPU, 메모리, 보조기억장치, 입출력장치 등

운영체제

  • 실행할 프로그램에 필요한 자원을 할당, 올바르게 실행되도록 돕는 프로그램. like 정부
  • 부팅될 때 메모리 내 커널 영역에 적재됨

메모리의 구분

  • 커널 영역(kernel space)
    • 운영체제가 저장됨
  • 사용자 영역(user space)
    • 사용자가 이용하는 응용 프로그램이 적재됨

1-2. 운영체제를 알아야 하는 이유

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

운체를 통해서 하드웨어와 프로그램을 더 깊이 이해하고 문제 해결의 실마리를 찾을 수 있다.

2. 운영체제의 큰 그림

2-1. 운영체제의 심장, 커널

커널

  • 운영체제의 핵심 서비스를 담당
  • 보통 운체라고 하면 커널을 지칭함
  • 미포함 내역) 사용자 인터페이스

2-2. 이중 모드와 시스템 호출

운체는 응용 프로그램이 하드웨어 자원에 직접 접근하지 못하게 한다.
오직 나를 통해서만 자원에 접근할 수 있다.
나에게 요청하면 내가 대신 운체 코드(커널 코드) 돌려드림.

이중 모드 : CPU가 명령어를 실행하는 모드를 구분함

  • 사용자 모드
    • 플래그 레지스터 > 슈퍼바이저 플래그 = 0
    • 운체 서비스를 제공받을 수 없는 실행 모드
    • = 커널 영역의 코드 실행 불가
  • 커널 모드
    • 플래그 레지스터 > 슈퍼바이저 플래그 = 1
    • 운체 서비스 가능
    • 운체는 커널 모드로 실행되므로 자원에 접근 가능

시스템 호출(system call)

  • 사용자 모드로 실행되는 프로그램이 운체에 보내는 요청
  • 커널 모드로 전환하여 운체 서비스 가능
  • = 소프트웨어 인터럽트

2-3. 운영체제의 핵심 서비스

프로세스 관리

  • 프로세스 : 실행 중인 프로그램
  • 다양한 프로세스를 잘 관리하고 실행해주세요
  • 프로세스 동기화 / 교착 상태 해결 부탁

자원 접근 및 할당

  • CPU 스케줄링
  • 어떻게 메모리를 할당하는가 / 메모리 부족하면 어떻게 대처해야하는가
  • 인터럽트 서비스 루틴은 커널 영역에 쏙!

파일 시스템 관리

  • 보조기억장치 속 데이터를 어떻게 파일과 디렉터리로 관리하는지

0개의 댓글