운영체제 1️⃣

운영체제 개요

 

컴퓨터 시스템의 구성

  • 하드웨어
    • CPU, 메모리, 입출력장치, 저장장치, 네트워크 장치 등
  • 소프트웨어
    • 응용 소프트웨어 (웹 브라우저, 그래픽 소프트웨어 등)
    • 시스템 소프트웨어 (응용 소프트웨어와 하드웨어 사이의 매개체 > 운영체제, 컴파일러 등)

 

운영체제: 컴퓨터 시스템의 자원 관리, 컴퓨터 프로그램 동작 위한 서비스를 제공하는 프로그램들의 모임

 

운영체제의 역할

  • 자원 관리
    • 자원: 하드웨어 자원, 소프트웨어 자원, 데이터 포함
    • 데이터 읽기, 장치 제어, CPU 및 메모리 관리 등
  • 사용자 지원 
    • 사용자가 내린 명령 해석
    • 사용자와 하드웨어 사이의 매개체
    • 입력 내용 응용 프로그램에 전달 등

 

운영체제 등장 이전의 문제점

  • 초기 컴퓨터에는 운영체제가 존재하지 않았음
  • 사용자가 응용 프로그램을 통해 직접 하드웨어를 제어해야함 
  • 여러 종류의 하드웨어에서 동작하는 응용 프로그램 제작 필요
  • 응용 프로그램들 간의 효율적 자원 공유 어려움

 

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

  • 하드웨어 직접 제어하는 CPU 명령어 사용 가능
  • 커널: 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할 (운영체제의 핵심 요소)
  • 분류
    1. 일체형 커널(monolithic kernel): UNIX, Linux 
      • 운영체제의 모든 서비스가 커널 내에 포함
      • 커널 내부 요소들이 효율적 상호 작용
      • 오류 발생 시 전체 장애 가능성
    2. 마이크로 커널
      • 운영체제 요소 대부분을 커널 외부로 분리, 커널 내부에는 최소한의 요소(메모리 관리, IPC 등)
      • 유지보수 용이, 안정성 우수
      • 성능 저하 (IPC 필요)
  • Q. 커널은 운영체제가 아닌가?
    • 어떻게 커널을 구성하는 지에 따라 다를 수 있음 

 

사용자 모드

  • 시스템 호출: 응용 프로그램이 운영체제에 서비스 요청 > 커널 모드로 변경 > 커널 동작 > 하드웨어 제어
    • 사용자 모드에서 동작하다가 필요할 때 커널 모드를 부르는 형태
  • 하드웨어 제어 명령어를 넣어도 작동하지 않음 

 

커널 모드에서는 운영체제만 동작, 사용자 모드에서는 응용 프로그램 동작 → 응용 프로그램이 하드웨어에 직접 접근하지 않음

 

 

운영체제의 구성요소

 

자원의 성격에 따라 구분!

 

1. 프로세스 관리자

  • 프로세스 생성, 삭제
  • 프로세스에 CPU 할당 위한 스케줄 결정
  • 프로세스 상태 관리

 

2. 메모리 관리자

  • 메모리 공간에 요구 발생 시 메모리 할당, 회수
  • 메모리 공간 보호 (응용 프로그램의 프로세스 접근 제한 등)

 

3. 파일 관리자

  • 프로그램 파일 및 데이터 파일 관리
  • 파일 열기, 수정, 삭제 등
  • 저장장치의 공간 관리, 파일의 접근 제한 관리

 

4. 장치 관리자

  • 시스템의 모든 장치 할당, 작동, 반환

 

운영체제의 유형

 

1. 일괄처리 운영체제 batch processing

  • 작업을 모아 순서대로 처리
  • 한 번에 한 프로그램씩 > 충분한 자원 활용 불가

 

2. 시분할 운영체제 time-sharing (대화형 운영체제 interactive)

  • 각 프로그램을 한 번에 조금씩 수행
  • 응답시간 크게 단축 (응답시간: 반응이 시작되는 시점까지의 소요시간)
  • 작업이 늦게 들어와도 컴퓨터가 반응을 해줌 → 대화형

 

3. 실시간 운영체제 real-time

  • 원하는 시간 내에 프로그램의 결과 얻을 수 있음
  • 증권 관리 등 즉각적인 결과 필요한 환경
  • 우선순위 높은 작업 우선 처리
  • 시분할과의 차이점: 실제 결과까지의 시간

 

4. 분산 운영체제 distributed

  • 2개 이상의 컴퓨터 시스템이 네트워크로 서로 연결되어 서로의 자원 이용
  • 하나의 컴퓨터를 사용하는 것처럼!

'TIL > CS' 카테고리의 다른 글

[이산수학] 증명  (0) 2024.04.01
[운영체제] 프로세스, 쓰레드  (1) 2024.03.26
[이산수학] 논리  (0) 2024.03.22
디지털 논리 회로  (2) 2024.03.17
이산수학이란  (0) 2024.03.11