CS/운영체제

운영체제란?

yhsim98 2022. 7. 17. 18:32

운영체제 스터디 시작

본 포스팅은 운영체제 스터디를 시작하게 되어 공부한 내용을 정리한 포스팅입니다.

운영체제란?

시스템의 자원과 동작을 효율적으로 관리하는 소프트웨어

 

user interface 제공, 자원 관리, 프로세스와 스레드 관리의 역할을 합니다.

  • 부팅
    • 컴퓨터가 실행될 경우 bootstrap라는 프로그램이 OS를 보조 메모리에서 메인 메모리로 올립니다.
      • OS가 전부 올라가는 것은 아닙니다, 커널이 올라감
    • 이것을 부팅이라 합니다

운영체제는 크게 System call Interface, Kernel, Resource Management로 구성되어있습니다.

 

  • System call
    • 운영체제에서 사용자가 사용할 수 있는 기능들을 모아놓은 인터페이스
    • 크게 6가지로 분류할 수 있다
    • 프로세스 제어 : end, abort, load, execute 등등
    • 파일 관리 : create, delete, open, close 등등
    • 장치 관리 : read, write, request etc..
    • 정보 유지 : get/set time or date
    • 통신 : send/receive messages, transfer status
    • 보호
  • Kernel
    • 자원관리, 하드웨어 관리 등 실질적인 OS 기능들을 수행
    • 프로세스가 메모리 할당하고, 프로세서 통해 작업 처리하는 등등 다 커널을 통해 수행

운영체제 역할

  • 자원 관리(효율성)
    • 자원을 효율적으로 관리
    • HW resource(processor, memory, i/o devices, etc..)
    • SW resource(file, application, message, signal, etc..)
  • 성능 향상
  • 사용자 편의성 제공
  • 하드웨어 관리
  • 시스템 보호

커널

운영체제도 하나의 프로그램으로서 부팅되며 메모리에 올라가야 합니다.

 

하지만 용량이 큰 운영체제를 메모리에 전부 올리기에는 너무 비효율적입니다.

 

커널이란 메모리에 상주하는 운영체제의 부분으로 processor나 memory 관리 등 운영체제의 핵심적인 기능들을 담당합니다.

 

커널을 제외한 운영체제의 나머지 부분을 유틸리티라 합니다

컴퓨터 시스템 구성

현대의 일반적인 컴퓨터 시스템은 여러 CPU와 장치 컨트롤러(Device controllers)로 구성되어 있습니다. 이들은 공통 버스(common bus)로 이어져 메모리를 공유합니다.

Computer-System Operation

입출력 장치와 CPU는 동시에 실행될 수 있습니다.

 

장치 컨트롤러(Device controllers)는 CPU에게 이벤트 발생을 알리는데, 이것을 인터럽트(Interrupt)라 합니다.

 

보통 컴퓨터는 여러 작업을 동시에 처리하는데, 이때 당장 처리해야 하는 일이 생겨 기존의 작업을 잠시 중단해야 하는 경우 인터럽트 신호를 보냅니다.

 

그러면 커널은 작업을 멈추고 인터럽트를 처리한 후 다시 기존 작업으로 돌아옵니다.

 

인터럽트는 하드웨어나 소프트웨어에 의해 발생할 수 있습니다. 소프트웨어에 의해 발생하는 인터럽트는 트랩(Trap)이라고 부릅니다.

 

하드웨어의 경우 시스템 버스(system bus)를 통해 CPU에 신호를 보냄으로써 인터럽트를 발생시키고, 소프트웨어는 시스템 콜(System call)이라는 특별한 명령으로 인터럽트를 발생시킵니다.

I/O Structure

컴퓨터는 다양한 입출력 장치를 가지고 있으며, 입출력 컨트롤러는 각각 다른 장치를 담당한다.

 

컴퓨터는 이 컨트롤러 덕분에 다양한 장치를 사용할 수 있다.

 

또한 운영체제는 각 장치 컨트롤러를 제어하기 위한 장치 드라이버를 가지고 있다.

 

입출력 명령을 수행하게 되면 장치 드라이버가 장치 컨트롤러의 레지스터를 로드한다. 그러면 장치 컨트롤러가 입출력을 수행하고 장치 드라이버에 인터럽트를 보낸 다음 통제권을 다시 운영체제에 넘겨준다.

 

사용자 프로그램은 System call을 통하여 장치에 입출력을 요청할 수 있다.

이중 모드(Dual-mode) 방식

시스템 자원을 보호하기 위해 OS에는 user mode와 kernel mode가 있습니다.

 

사용자의 프로세스가 처리 중이면 CPU는 user mode를 유지합니다. 하지만 프로세스가 system call를 호출하게 되면 kernel mode로 변경되게 됩니다. kernel mode에서만 수행할 수 있는 작업이 있습니다.

 

이를 통하여 나쁜 의도를 가진 사용자로부터 운영체제, 하드웨어를 비롯한 시스템과 자원을 보호할 수 있습니다.

 

프로그램이 파일 시스템에 접근하여 파일을 여는 것도 입출력을 하는 것도 전부 system call을 이용하여 커널 모드로 변경 후 수행해야 한다.

운영체제 역할

  • 프로세스 관리
  • 프로세서 관리
  • 주기억장치 관리
  • 파일 관리
  • 보조기억장치 관리
  • 입출력장치 관리
  • 네트워킹

등등 다양합니다

프로세스 관리

  • 프로세스
    • 커널에 등록된 실행 단위
    • 메모리에서 실행 중인 프로그램
  • 주요 기능
    • 프로세스 생성, 소멸
    • 자원 할당
    • 프로세스 활동 일시 중지, 활동 재개
    • 프로세스간 통신
    • 프로세스간 동기화
    • 교착상태 처리

메모리 관리

  • 주기억장치(메모리)
    • 작업을 위한 프로그램 및 데이터를 올려 놓는 공간
  • 역할
    • 프로세스에게 메모리 공간 할당
    • 메모리의 어느 부분이 프로세스에게 할당되었는지 추적 및 감시
    • 프로세스 종료 시 메모리 회수
    • 메모리의 효과적 사용
    • 가상 메모리 : 물리적 실제 메모리보다 큰 용량 갖도록 지원
  • 메모리 할당 방법
    • 전체 적제
    • 일부 적체
      • 가상화

Reference

http://www.kocw.net/home/cview.do?cid=5c3c30382c7bbcf6
https://www.youtube.com/watch?v=jZuTw2tRT7w&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=5
https://parksb.github.io/article/5.html