컴퓨터 공학/운영체제

[혼공컴운] chapter.09 운영체제 시작하기

hhzinistic 2023. 7. 29. 17:22

2023.07.23 - [컴퓨터 공학/컴퓨터 구조] - [혼공컴운] chapter.08 입출력장치

 

[혼공컴운] chapter.08 입출력장치

2023.07.23 - [컴퓨터 공학/컴퓨터 구조] - [혼공컴운] chapter.07 보조기억장치 [혼공컴운] chapter.07 보조기억장치 2023.07.22 - [분류 전체보기] - [혼공컴운] chapter.06 메모리와 캐시 메모리 [혼공컴운] chapter

zinistic.tistory.com

 

 

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

 

  • 운영체제(operating system)
    : 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램. 커널 영역에 적재된다.

    - 커널 영역(kernel space): 메모리 공간에서 사용자 영역(user space)를 제외한 영역.
    - 사용자 영역(user space): 메모리 공간에서 사용자가 이용하는 응용 프로그램이 적재되는 영역. 스택 영역, 힙 영역, 데이터 영역, 코드 영역이 사용자 영역에 포함된다.

    *응용 프로그램(application soft ware): 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램.

메모리 구조

 

  • 운영체제를 알아야 하는 이유
    운영체제가 제공하는 기능으로 인해서 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요 X.
    하지만
    1. 운영체제는 현재 하드웨어의 상태를 알고 있다.
    2. 내가 작성한 코드가 어떻게 실행되었는지를 알고 있다.
    3. 하드웨어 상에서 어떤 문제가 발생했는지 알려준다.

    이러한 이유들로 인해서 문제 해결의 실마리를 찾을 수 있다!


 




09-2 운영체제의 큰 그림

  • 커널(kernel): 운영체제의 핵심 서비스를 담당하는 부분.
    - 보안, 자원 관리 등의 역할을 담당.

    * 사용자 인터페이스(UI, user interface): 커널에 포함되지 않는 운영체제가 제공하는 서비스
    - 그래픽 유저 인터페이스(GUI, graphical user interface): 화면과 같은 그래픽 기반으로 컴퓨터와 상호작용
    - 커멘드 라인 인터페이스(CLI, command line interface): 명령어를 입력함으로써 컴퓨터와 상호작용


  • 이중 모드와 시스템 호출
    • 이중 모드(dual mode): CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식.
      • 사용자 모드(user mode): 운영체제 서비스를 제공받을 수 없는 실행 모드. 커널 영역의 코드를 실행할 수 없음.
      • 커널 모드(kernel mode): 운영체제 서비스를 제공받을 수 있는 실행 모드. 커널 영역의 코드 실행 가능.
      • 시스템 호출(system call): 사용자 모드로 실행되는 프로그램이 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 요청. 소프트웨어 인터럽트에 포함된다.

  • 운영체제의 핵심 서비스
    • 프로세스 관리
      : CPU는 한 번에 하나의 프로세스만 실행할 수 있기 때문에 여러 프로세스들을 번갈아 가며 실행. 
      * 프로세스(process): 실행 중인 프로그램

    • 자원 접근 및 할당
      : 운영체제는 프로세스들이 사용할 자원에 접근하고 조작함으로써 프로세스에 필요한 자원을 할당.
      • CPU
        : 운영체제는 프로세스들에 공정하게 CPU를 할당하기 위해 어떤 프로세드부터 CPU를 이용하게 할 것 인지, 얼마나 오래 이용하게 할 것인지 CPU 스케줄링을 통해 할당함.
      • 메모리
        : 운영체제는 새로운 프로세스가 적재될 때 마다 어느 주소에 적재해야 할지를 결정.
      • 입출력장치
        : 인터럽트 서비스 루틴은 운영체제가 제공하는 기능으로 커널 영역에 有. 
    • 파일 시스템(file system) 관리
      : 운영체제는 보조기억장치 속 데이터를 파일과 디렉터리로 관리.

* 가상 머신과 이중 모드의 발전
- 가상 머신(virtual machine): 소프트웨어가 만들어낸 가상 컴퓨터. 새로운 운영체제와 응용 프로그램을 설치하고 실행할 수 있다. 가상 머신 또한 응용 프로그램이다.
가상 머신에서 실행된 응용 프로그램은 하이퍼바이저 모드로 실행되어 운영체제 서비스를 받도록 할 수 있음.

 

* 시스템 호출의 종류

 

 

 




* 오류 지적은 환영입니다.^^*