[혼공컴운] ch.9 운영체제 시작하기

제트·2024년 7월 26일
0

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

1. 운영체제란

  • 시스템 지원(자원) : 프로그램 실행에 마땅히 필요한 요소

    • CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품
  • 운영체제(Operating System) : 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램

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

  • 사용자 영역(user space) : 커널 영역 제외한 나머지 영역, 사용자가 이용하는 응용 프로그램이 적재되는 영역

/

9-2. 운영체제의 큰 그림

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

  • 커널(kernel) : os의 핵심 서비스를 담당하는 부분
    • 어떤 커널을 사용할지에 따라 프로그램이 하드웨어를 이용하는 양상이 달라지고, 결과적으로 컴퓨터 전체의 성능도 달라질 수 있음
  • 사용자 인터페이스(UI, User Interface) : 사용자-컴퓨터 상호작용 통로
    • os가 제공하는 서비스나 커널에 포함되지 않음
  • os가 제공하는 사용자 인터페이스의 종류
    • 그래픽 유저 인터페이스(GUI, Graphical User Interface)
      • 그래픽 기반으로 컴퓨터와 상호작용
    • 커맨드 라인 인터페이스(CLI, Command Line Interface)
      • 명령어 기반으로 컴퓨터와 상호작용

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

  • os는 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지해 자원을 보호. os 자신을 통해서 접근하도록 함.
  • 이중 모드(dual mode) : CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식
    • 사용자 모드(user mode) : os 서비스를 제공받을 수 없는 실행 모드. 커널 영역의 코드 실행 불가. 일반적인 응용 프로그램의 실행 모드로 자원 접근 불가.
    • 커널 모드(kernel mode) : os 서비스 제공받을 수 있는 실행 모드. 커널 영역의 코드 실행 가능. 자원에 접근하는 명령어 포함한 모든 멸영어 실행 가능, 자원 접근 가능.

/

  • 시스템 호출(system call) : os 서비스 제공받기 위한 요청, 제공받기 위해 커널 모드로 전환하는 방법
  • 소프트웨어 인터럽트 : 인터럽트는 입출력 장치에 의해 발생하기도 하나, 특정 명령어에 의해 발생하기도 함
    /

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

1) 프로세스 관리

  • 프로세스(process) : 실행 중인 프로그램
  • 하나의 CPU는 한 번에 하나의 프로세스만 실행할 수 있어 CPU는 이 프로세스들을 번갈아 가며 실행
  • 여러 프로세스가 동시에 실행되는 환경에서는 '프로세스 동기화' 필수

2) 자원 접근 및 할당

  • CPU
    • CPU 스케줄링 : OS에서는 어떤 프로세스부터 CPU를 이용하게 할건지, 얼마나 오래 CPU를 이용하게 할 건지 결정할 수 있어야 함
  • 메모리
    • OS는 새로운 프로세스가 적재될 때마다 어느 주소에 적재할지 정해야 함
  • 입출력 장치
    • OS는 인터럽트 서비스 루틴을 제공해 입출력작업 수행

2) 파일 시스템 관리

  • 열고, 생성하고, 삭제할 수 있는 파일들을 한데 묶어 폴더를 관리하는 시스템
profile
소프트웨어학부 2학년

0개의 댓글