본문 바로가기

CS 지식/운영체제

2장 - 운영체제의 소개

1. 운영체제의 개념과 발전 목적

- 운영체제는 다양한 응용 프로그램이 하드웨어, 즉 컴퓨터 자원을 효율적으로 사용할 수 있도록 관리하고 조정하는 역할

컴퓨터 시스템 구성 요소 & 운영체제

- 소프트웨어

  • 시스템 소프트웨어
    • 컴퓨터 자원을 관리, 응용 프로그램의 실행을 지원하여 컴퓨터를 제어
    • 운영체제, 장치 드라이버 등
  • 유틸리티
    • 컴퓨터의 여러 처리 과정을 보조해 시스템을 유지하고 성능을 개선하는 프로그램
    • 운영체제를 돕는 역할
  • 응용 프로그램
    • 어떤 문제를 해결하거나 특정 작업을 수행하는 프로그램

 

- 운영체제 발전 목적

  • 편리성 : 사용자에게 편리한 환경 제공
    • 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스 제공
  • 효율성 : 시스템 성능 향상
    • 처리량, 지연,응답시간, 신뢰도, 사용 가능도에 따라 성능을 평가
  • 제어 서비스 향상

 

 

2. 운영체제의 기능

자원 관리

  • 메모리 관리
    • 메인 메모리 관리
      • 메모리의 어느 부분을 사용하고, 누가 사용하는지 점검
      • 메모리에 저장할 프로세스를 결정
      • 메모리를 할당하고 회수하는 방법을 결정
    • 보조기억장치 관리
      • 빈 여유 공간 관리
      • 새로운 파일 작성 시 저장 장소 할당
      • 메모리 접근 요청을 스케줄링
      • 파일 생성 및 삭제
  • 프로세스 관리
    • 프로세스와 스레드 스케줄링
    • 프로세스 생성 및 제거
    • 프로세스 중지 및 재수행
    • 동기화, 통신, 교착 상태 방지 방법을 제공
  • 장치(입출력장치) 관리
    • 임시 저장(buffer-caching) 시스템 기능 제공
    • 드라이버 인터페이스 제공
  • 파일(데이터) 관리

 

시스템 관리

  • 시스템 보호(사용자 권한 부여)
    • 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공하여 데이터와 시스템을 보안
  • 네트워킹(통신)
    • 연결된 프로세서가 통신시 경로 설정, 접속 정책, 충돌, 보안 등의 문제를 관리
  • 명령 해석기 (Command Interpreter)
    • 사용자가 입력한 명령은 제어문으로 운영체제에 전달
    • 인터페이스 역할

 

 

3. 운영체제의 발전 과정과 유형

- 일괄 처리 시스템(Batch Processing System)

  • 직렬 처리 기술과 동일
  • 데이터를 일정 기간 또는 일정량이 될 때까지 모아 한 번에 처리
  • 많은 사용자와 프로그램이 컴퓨터 자원을 공유할 수 있음
  • (단점) 준비 작업들의 유형이 동일해야 하고, 작업에 모든 유형의 입력을 할 수 없음
  • 위의 단점을 보안하기 위해 "모니터링", "버퍼링", "스풀링" 등 방법이 등장

 

- 버퍼링(Buffering)

  • 프로세서와 입출력장치의 속도 차이로 생긴 유휴시간이 없도록 입출력장치별로 입출력 버퍼를 두는 것

 

- 스풀링(Spooling, Simultaneous Peripheral Operation On-Line)

  • 속도가 빠른 디스크를 버퍼처럼 사용해 입출력장치에서 미리 읽는 것
  • 버퍼링 : 컴퓨터 하드웨어의 일부인 버퍼를 사용 ↔ 스풀링 : 별개의 오프라인 장치를 사용
  • 버퍼링 : 하나의 입출력 작업과 계산만 함께 함 ↔ 스풀링 : 여러 작업의 입출력과 계산을 함께 함

 

- 가상화(Virtualization)

  • 1960년대 후반에 등장한 이론이 2000년대 이후 확산됨
  • 물리적 자원을 추상화하여 논리적 자원 형태로 표현하는 기술
  • 서버 가상화 : 물리적 서버 하나에 가상 서버를 여러 개 구성하는 방법
    • 호스트 기반 가상화
      • 설치가 쉽고 구성이 편리
      • 성능이 떨어질 수 있음
    • 베어메탈 기반 가상화
      • 향성된 성능을 제공, 실시간 운영체제를 지원
      • 운영체제 위에 없기 떄문에 디바이스용 드라이버 등을 포함해야 하고, 설치 및 구성이 어려움

 

- 클라우드 컴퓨팅

  • 그리드 컴퓨팅(분산), 유틸리티 컴퓨팅(과금), 서버 기반 컴퓨팅(처리)의 특징을 조금씩 차용한 개념
  • 클라우드 데이터 센터에서 원하는 만큼 컴퓨터 자원을 무한대로 사용할 수 있음
  • 컴퓨터 자원을 원할 때 원하는 만큼 늘리거나 줄일 수 있음
  • 컴퓨터 자원을 사용한 만큼 사용료 지불
  • IaaS(Infrastructure as a Service)
    • 서버, 스토리지, 네트워크 등 인프라나 자원을 가상화 하여 서비스로 제공
    • 아마존의 EC2, S3가 존재
  • PaaS(Platform as a Service)
    • 응용 프로그램의 구축, 테스트 및 설치가 가능한 통합 개발 환경을 웹으로 제공
    • Open AI도 일종의 PaaS
  • SaaS(Seftware as a Service)
    • 특정 소프트웨어를 인터넷으로 제공
    • On Demand Software라고 함

 

 

운영체제의 유형

- 컴퓨터 시스템의 발전 과정과 용도, 응답시간이나 데이터 입력 방법에 따라 운영체제를 아래와 같이 구분할 수 있음

  • 일괄 처리 시스템
  • 다중 프로그래밍 시스템 : (목표) 프로세서 사용을 최대화
  • 다중 처리 시스템
  • 시분할 시스템 : (목표) 응답시간을 최소화
  • 실시간 처리 시스템
    • 경성 실시간 처리 시스템(Hard real time processing system)
      • 작업의 실행 시작이나 완료에 대한 시간 제약 조건을 지키지 못하면 시스템에 치명적 영향을 줌
    • 연성 실시간 처리 시스템(Soft real time processing system)
      • 시간 제약 조건은 있으나, 이를 지키지 못해도 전체 시스템에 치명적 영향을 미치지 않음
  • 분산 처리 시스템 : 시스템마다 독립적인 운영체제와 메모리로 운영하며, 필요 시 통신하는 시스템

 

4. 운영체제의 서비스

부팅 서비스

- 운영체제를 메인 메모리에 적재하는 과정

사용자 서비스

- CLI, GUI 등으로 사용자에게 인터페이스 제공

- 프로그램 실행, 입출력 동작 수행, 파일 시스템 조작, 통신 등을 제공

서비스 서비스

- 자원 할당, 계정, 보호 및 보안을 하여 효율성을 높임

시스템 호출

- API라고도 하며, 실행 중인 프로그램과 운영체제 간의 인터페이스를 말함

- 방법 : 서브루틴의 호출 방식, 대화 형태로 호출(명령 해석기 사용)

- 프로세스 제어, 파일 조작, 장치 관리, 정보 유지 등이 존재

 

5. 운영체제의 구조

- 단일 구조 운영체제

  • 모든 기능을 커널과 동일한 메모리 공간에 적재한 후 시스템 호출만으로 사용
  • 도스, 유닉스 등이 포함됨

 

- 계층 구조 운영체제

  • 비슷한 기는을 수행하는 요소를 그룹화 하여 계층적으로 구성
  • 최하위 계층(0, 하드웨어) ~ 최상위 계층(5, 응용 프로그램) 으로 구성
  • 설계시 계층을 나누는 것을 신중하게 해야함

 

- 마이크로 커널 구조 운영체제

  • 커널에 최소한의 기능만 포함해 크기를 줄이고, 다른 기능들은 사용자 공간으로 옮겨 해당 공간에서 수행하는 구현 방법

 

'CS 지식 > 운영체제' 카테고리의 다른 글

11장 - 분산 및 다중(병렬) 처리 시스템  (0) 2023.03.17
1장 - 컴퓨터 시스템의 소개  (0) 2022.08.24
0장 - 운영체제 개요  (0) 2022.08.07