김기현
Chapter09

운영체제 시작하기

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

운영체제란

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

운영체제의 역할

  • 메모리 주소가 겹치지 않도록 프로그램들을 적당한 공간에 적재해줌
  • 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적인 메모리 자원 관리

커널 영역 : 운영체제가 실행되는 메모리 공간 사용자 영역 : 인터넷 브라우저 등 사용자의 응용 프로그램이 실행되는 메모리 공간


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

  • 하드웨어의 상태와 하드웨어 상에 어떤 문제가 있었는지 확인 가능
  • 문제 해결의 실마리 찾기 가능
  • 하드웨어와 프로그램에 더 깊이 이해 가능
  • 운영체제를 이해하면 운영체제에 제대로 된 명령 가능

운영체제의 큰 그림

운영체제의 심장, 커널

커널 : 운영체제의 핵심 서비스를 담당하는 부분 ⁇ 핵심 서비스 ➡️ 시스템 자원에 접근 또는 조작 , 프로그램을 올바르고 안전하게 실행되게 함

커널 회로

⭐️ 응용 프로그램이 하드웨어에 접근하지 않고도 자원을 사용할수 있는 이유
= 문서를 저장할때 하드 디스크에 어떻게 저장할지 운영체제가 대신 해결해 줌

사용자 인터페이스 : 운영체제가 제공하는 대표적인 서비스

‼️ 커널에 포함되지는 않음

사용자 인터페이스의 종류

그래픽 유저 인터페이스

  • 그래픽을 기반으로 컴퓨터와 상호작용하는 인터페이스
  • 윈도우에서 마우스를 이용해 프로그램을 실행, 스마트폰 앱을 터치하는 등

커맨드 라인 인터페이스

  • 명령어를 기반으로 컴퓨터와 상호작용하는 인터페이스
  • cmd, powershell, terminal 등
    • 이중 모드와 시스템 호출

      이중 모드 : CPU가 명령어를 실행하는 모드를 사용자 모드커널 모드 로 구분

      • 사용자 모드 : 일반적인 응용 프로그램이 실행되는 모드, 하드웨어 자원에 접근 ❌
      • 커널 모드 : 자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능한 모드

      시스템 호출 : 사용자 모드로 실행되는 프로그램 이 운영체제 서비스를 제공받기 위한 요청
      일종의 인터럽트 (소프트웨어 인터럽트)

      ➡️ 시스템 호출로 커널 모드로 전환하여 운영체제 서비스를 제공

      시스템 호출 처리 순서

      1. 시스템 호출을 발생시켜 커널 모드로 전환
      2. 필요한 커널 기능 실행
      3. 사용자 모드로 복귀
      4. 작업 재개

      운영체제의 핵심 서비스

      1. 프로세스 관리
      2. ➡️ `프로세스` : 실행 중인 프로그램
      3. 프로세스들이 사용할 자원에 접근 및 필요한 자원 할당
      4. 파일 시스템 관리