Computer Science/운영체제

운영체제 1강 :: 운영체제란, 커널모드, 운영체제 유형

HJPlumtree 2023. 3. 25. 19:34

운영체제에서 기억하고 싶은 내용

 

 

운영체제란?

  • 응용 소프트웨어와 하드웨어 사이의 매개체
  • 대표적인 시스템 소프트웨어
  • 컴퓨터 시스템의 자원 관리
  • 컴퓨터 프로그램의 서비스 제공하는 프로그램들의 모음

 

 

운영체제 역할

컴퓨터 시스템 자원 관리

  • 자원: 하드웨어 자원, 소프트웨어 자원, 데이터
  • 저장장치에서 데이터 읽어 오는 역할
  • 키보드, 마우스 제어 역할
  • 동시에 여러 프로그램 실행시 CPU와 메모리 효율적 관리

=> 컴퓨터 시스템을 효율적으로 운영하는 목적

 

 

사용자 지원

  • 사용자가 내린 명령을 해석해서 실행(CLI)
  • 사용자와 하드웨어 사이의 매개체

=> 사용자에게 편의성 제공하는 목적

 

 

우와~~ 초기에는 운영체제가 없었다

그러니 응용 프로그램이 하드웨어를 제어했었다

이 말은, 응용 프로그램 개발자는 하드웨어 제어방법을 알아야 했다

여러 응용 프로그램이 하드웨어를 공유할 때 자원 분할이 어려웠다

 

 

운영 체제가 존재하면서

하드웨어와 응용 프로그램 사이에 운영체제가 위치

운영체제가 컴퓨터 시스템 자원을 제어해준다

 

 

커널모드와 사용자 모드

커널 모드(슈퍼바이저 모드)

  • 하드웨어를 직접 제어하는 CPU 명령어를 사용할 수 있는 모드
  • 운영체제의 커널이 동작한다

 

사용자 모드(보호 모드)

  • 하드웨어를 직접 제어하는 CPU 명령어 사용 불가능
  • 응용 프로그램이 동작하는 모드

 

시스템 호출

  • 응용 프로그램이 하드웨어에 대한 제어가 필요한 경우
  • 운영체제에 서비스를 요청하는 것을 시스템 호출이라고 한다
  • 이 경우 사용자 모드 -> 커널 모드로 바뀌고 동작이 끝나면 사용자 모드로 변경

 

 

커널이란?

커널 모드에서 동작하는 운영체제의 핵심

응용 프로그램과 하드웨어 사이의 가교 역할

그럼 커널이 운영체제인가? 그건 종류에 따라 다르다

 

 

커널의 종류

1. 일체형 커널

  • 운영체제의 모든 서비스가 커널에 포함(운영체제 = 커널)
  • 장점: 내부 요소가 서로 효율적으로 상호작용 가능
  • 단점: 하나의 요소에 오류가 발생하면 시스템 전체 장애 발생 가능
  • UNIX, Linux 등

 

2. 마이크로커널(Micro Kernel)

  • 운영체제 요소 대부분을 커널 외부로 분리
  • 커널 내부에는 핵심만 놔둔다(메모리 관리, 멀티 태스킹, 프로세스 간 통신(IPC) 등)
  • 장점: 유지보수 용이, 안정성 우수, 새로운 서비스 추가해서 운영체제 확장 가능
  • 단점: 커널 외부 요소들 사이에는 커널 내부에 있는 IPC를 통해야 되서 성능 저항 가능 

 

 

자원 성격에 따라 운영체제 구성

1. 프로세스 관리자가 하는 일

  • 프로세스 생성 및 삭제
  • CPU 할당 위한 스케쥴 결정
프로세스란 실행중인 프로그램

 

2. 메모리 관리자가 하는 일

  • 메모리 할당 및 회수
  • 메모리 할당 공간이 겹치지 않도록 유효성 확인
  • 운영체제, 커널도 메모리를 할당 받고 있어, 이 부분 보호도 해준다

 

3. 장치 관리자가 하는 일

  • 모든 장치 관리(HDD, SSD, 키보드, 마우스 등)

 

4. 파일 관리자가 하는 일

  • 모든 파일 관리
  • 저장장치의 공간 관리
  • 파일 접근 제한 관리

 

 

운영체제의 유형

일괄처리 운영체제(Batch Processing)

  • 작업 모아서 순차적으로 처리하는 방식
  • 태초에 사람이 하던 일을 프로그램이 빠르게 처리해서 작업 속도 향상되었다
  • 단점: 앞 작업이 끝나야 뒷 작업 시작된다

 

시분할 운영체제(Time Sharing)

  • 각 프로그램을 시간을 분할해서 조금씩 수행한다
  • 대화형(Interactive) 운영체제라고도 한다
  • 사용자들을 마치 혼자 컴퓨터를 사용하는 듯한 느낌을 받는다
  • 응답시간이 일괄처리보다 빨라짐
응답시간이란 작업이 끝나는 시간이 아니라 반응이 시작된 시점

 

실시간 운영체제(Real Time)

  • 원하는 시간 내에 프로그램의 결과를 얻을 수 있는 방식이다
  • 중요한 작업에 대한 처리 기한을 맞추는 것이 중요
  • 우선순위가 높은 작업을 우선 처리할 수 있는 내부 기법이 있다
  • 미사일 제어 시스템, 증권거래 관리 시스템

 

분산 운영체제

  • 분산 시스템을 관리하기 위한 운영체제
  • 여러 컴퓨터 시스템이 네트워크로 서로 연결되어 서로 자원을 사용할 수 있는 시스템