[Chapter 1] Introduction to Operating Systems

slchoi·2022년 1월 17일
0

운영체제

목록 보기
1/4
post-thumbnail

KOCW에 공개된 이화여대 반효경 교수님 운영체제 강의를 수강 후 정리한 내용입니다.

1. 운영체제란 무엇인가?


1. 운영체제(Operating System, OS)란?

  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
  • 좁은 의미: 협의의 운영체제(커널)
    • 운영체제의 핵심 부분으로 메모리에 상주하는 부분
    • 일반적으로 운영체제라고 하면 커널만 의미
  • 넓은 의미: 광의의 운영체제
    • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
    • 메모리에 상주하지 않는 별도의 프로그램도 포함

2. 운영체제의 목적


1. 하드웨어를 효율적으로 관리

  • 컴퓨터 시스템의 자원을 효율적으로 관리
    • 하드웨어 자원: 프로세서, 기억장치, 입출력 장치 등
    • 소프트웨어 자원: 프로세스, 파일, 메시지 등
  • 효율성: 주어진 자원으로 최대한의 성능을 내도록
  • 사용자간의 형평성 있는 자원 분배
  • 사용자 및 운영체제 자신을 보호

2. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

  • 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 현상을 제공
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

2. 운영체제의 분류


  • 동시 작업 가능 여부, 사용자의 수, 처리 방식에 따라 분류

1. 동시 작업 가능 여부

단일 작업(single tasking)

  • 한 번에 하나의 작업만 처리
  • ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
  • 특수한 경우(하나의 기능 밖에 없어 기능에 충실해 제약시간 안에 실행되어야 하는 경우)를 제외하고는 많이 사용되지 않음

다중 작업(multi tasking)

  • 동시에 두 개 이상의 작업 처리
  • 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
  • 대부분의 운영체제에서는 다중 작업을 사용

2. 사용자의 수

  • 한 대의 컴퓨터를 여러 사용자가 동시에 접근해서 사용할 수 있는지를 기준으로 분류

단일 사용자

  • MS-DOS, MS Windows
  • MS Windows에서도 서버를 추가시키면 여러 사용자가 접근 가능하기도 함

다중 사용자

  • UNIX, NT server
  • UNIX에서는 계정을 여러 개 만들어 계정을 통해 하나의 컴퓨터에 접근
  • 보안 기능이 추가되어야 하고 사용자의 형평성을 잘 관리해야 함

3. 처리 방식

일괄처리(batch processing)

  • 작업 요청의 일정량을 모아 한꺼번에 처리
  • 작업이 완전 종료될 때까지 기다려야 함
  • interactive하지 않음
  • 현대에서는 찾아보기 어려움

시분할(time sharing)

  • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
  • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
  • 사용자 입장에서는 interactive한 방식 (어떤 결과를 요청하면 바로 결과가 나옴)
  • 사용자들에게 빠르게 응답하면서 주어진 자원을 최대한 활용하는 것이 목적
  • 범용 컴퓨터에서 많이 사용

실시간(real-time)

  • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간시스템을 위한 OS
  • ex) 원자로/공장 제어, 미사일 제어, 반도체 장비
  • 특수 목적용 컴퓨터에서 많이 사용
  • 실시간 시스템의 개념 확장
    • 경성 실시간 시스템(hard realtime system): 반드시 시간 안에 수행되어야 하는 시스템
    • 연성 실시간 시스템(soft realtime system): 정해진 시간은 있지만 조금 늦어도 아무 이 상 없는 시스템
  • 최근에는 실시간 OS를 필요로하는 응용프로그램들(ex. 네비게이션)이 많아져 범용 시스템에 어떻게 실시간 OS를 적용할지에 대한 연구가 수행되고 있음

현재 사용하는 OS에서는 다중 작업을 지원하고 있고, 다중 사용자를 지원하고, 시분할 방식으로 운영되고 있음

유사 용어 정리

  • multitasking
    • 컴퓨터에서 여러 작업을 동시에 수행하는 것
    • 하나의 프로그램이 끝나기 전에 다른 프로그램이 실행 가능한 것
  • multiprogramming
    • 메모리에 여러 프로그램이 동시에 올라가 있는 것을 의미
    • multitasking이 되려면 메모리에 여러 프로그램이 동시에 올라가야 하지만, 여러 프로그램이 메모리에 올라가 있음을 강조
  • time sharing
    • 시간을 분할해서 쓰는 방식
    • CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
  • multi process
    • 여러 프로그램이 동시에 실행되는 것. multitasking과 유사한 의미
  • multi processor
    • 하드웨어적으로 다른 시스템
    • 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미

3. 운영체제의 예


1. UNIX(유닉스)

  • 대형 컴퓨터(서버)를 위해 만들어진 운영체제
  • 코드의 대부분을 C언어로 작성
  • 멀티 태스킹 운영체제에서 출발
  • 높은 이식성(하나의 컴퓨터에서 전혀 다른 컴퓨터로 이식하기가 쉬움)
  • 최소한의 커널 구조(핵심 기능만 커널에 넣음)
  • 확장 용이
  • 소스 코드 공개
  • 프로그램 개발에 용이
  • 다양한 버전: SunOS, Solaris, Linux
    • Linux는 현재에도 소스코드 공개하고 있고 개인용 pc에서도 사용 가능

2. DOS(Disk Operating System)

  • 개인용 PC를 위해 만들어진 운영체제
  • 단일 사용자용 운영체제에서 출발
  • 메모리 관리 능력의 한계 (주기억장치: 640KB)

3. MS Windows

  • MS사의 다중 작업용 GUI 기반 운영 체제
  • Plug and Play, 네트워크 환경 강화
  • 풍부한 지원 소프트웨어

4. 운영체제의 구조


  • 컴퓨터 시스템의 자원 관리
    • CPU 스케쥴링: 짧은 시간을 줬다 뺐는 과정을 반복하는 방식
    • 메모리 관리: 메모리에 너무 많은 프로그램을 올리는 것보다 CPU가 원할히 수행하는데 필요한 용량만큼은 프로그램이 받을 수 있도록 지원. 1/n하는 것보다 그때그때 특정 프로그램에 메모리를 몰아주는 것이 더 효율적
    • 파일 관리: 디스크의 특성에 맞게 파일을 관리. 디스크에 들어온 요청들을 스케쥴링해줘야 함
    • 입출력 관리: interrupt 기반으로 관리

1주차 강의 끝!!!
게시물에 사용한 사진은 강의 내용을 캡쳐한 것입니다.

profile
예비 백엔드 개발자

0개의 댓글