ComputerScience

운영체제와 정보 기술의 원리 1장 & 2장. 운영체제

1장. 컴퓨터 및 정보기술의 역사

컴퓨터의 이론적 발견과 하드웨어의 역사를 다루고 있다. 역사적인 내용이 대부분이기 때문에 읽고 넘어가기.

2장. 운영체제 개요

운영체제의 정의

운영체제(operating system)란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다.

  • 좁은 의미의 운영체제 : 메모리에 상주하는 운영체제의 부분을 커널이라고 부르며 이를 좁은 의미의 운영체제라고 부른다
  • 넓은 의미의 운영체제 : 커널뿐 아니라 시스템을 위한 유틸리티들을 광범위하게 포함하는 시스템

운영체제의 기능

환경을 제공하는 것 : 운영체제가 여러 사용자 및 프로그램들에게 사용하는 것과 같은 환상을 제공하는 것 ex) 사용자는 파일이 디스크에 어떻게 저장되는 지 몰라도 손쉽게 저장하거나 파일의 내용을 확인할 수 있다.

  • 자원을 효율적으로 관리하는 것
  • 이때 자원 이란 CPU, 메모리, 하드디스크 등 하드웨어 자원 뿐 아니라 소프트웨어 자원을 통칭

사용자와 운영체제 자신을 보호하는 것

운영체제의 분류

  • 동시 작업을 지원하는지의 여부에 따라
    • 단일작업용 운영체제 : 한번에 하나의 프로그램만 실행시킬 수 있는 운영체제, 주로 초장기 운영체제들이 해당된다.
    • 다중작업용 운영체제 : 동시에 2개 이상의 프로그램을 처리할 수 있는 운영체제
  • 시분할 시스템 : CPU의 작업시간을 여러 프로그램이 조금씩 나누어 쓰는 시스템
  • 다중프로그래밍 시스템 : 메모리 공간을 분할해서 여러 프로그램을 동시에 메모리에 올려놓고 사용하는 시스템
  • 대화형 시스템 : 각 프로그램에 대해서 키보드 입력의 결과를 곧바로 화면에 보여주는 시스템 cf. 다중처리기 시스템 : 하나의 컴퓨터 안에 CPU가 여러개 설치된 경우
  • 다중 사용자에 대한 동시 지원여부에 따라
    • 단일 사용자용 운영체제 : 한번에 한 사용자만이 사용하도록 허용하는 운영체제
    • 다중 사용자용 운영체제 : 여러 사용자가 동시에 접속해서 사용할 수 있게 하는 운영체제 ex) 서버
  • 작업을 처리하는 방식에 따라
    • 일괄처리 방식 : 요청된 작업을 일정량씩 모아서 한번에 처리하는 방식 모든 작업이 완전히 종료된 후에 결과를 알 수 있기 때문에 응답시간이 길다 ex) 초창기 컴퓨터의 펀치 카드 처리 시스템
    • 시분할 방식 : 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식 일괄 처리에 비해서 짧은 응답시간이기 때문에 사용자 입장에서 대화형 시스템으로 인식
  • 실시간 운영체제 : 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템 일정시간 안에 작업이 완료되지 못할 경우에는 동작 자체가 되지 않거나 큰 위험을 초래할 가능성이 있는 시스템에서 사용된다.
  • 경성 실시간 시스템 : 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등
  • 연성 실시간 시스템 : 멀티미디어 스트리밍 시스템과 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템

운영체제의 예

  • MS Windows
    • 마이크로소프트에서 개발한 MS-DOS와 윈도우 3.1등을 한층 발전시킨 개인용 컴퓨터를 위한 운영체제로 일반 사용자에게 가장 보편적으로 사용되고 있다.
    • 그래픽 인터페이스와 마우스의 기능을 제공해서 사용자에게 편리하지만 초창기에는 MS-DOS위에서 사용되었기 때문에 여러 한계가 있었기 때문에 -> 윈도우 95부터는 그 자체로 하나의 온전한 운영체제가 되도록 제작함
    • MS Windows의 다른 큰 특징으로는, 시스템에 새로운 하드웨어를 장착하면 운영체제가 자동으로 하드웨어를 감지하여 그에 맞게 설정된다는 점 -> 플러그 앤 플레이
  • 유닉스
    • 벨 연구소에서 프로그램 개발 환경을 위해 설계되어 이식성이 좋고 운영체제 커널의 크기가 작으며 소스 코드가 공개된 것 등의 이유로 학계에서 연구가 많이 이루어져 현재 가장 널리 사용되는 운영체제 중 하나로 자리를 잡았다.
      • 소프트웨어의 이식성이란 해당 소프트웨어를 다른 기종의 기계로 옮기는 것이 얼마나 용이한가를 나타내는 지표로서, 유닉스는 이러한 이식성이 높은 최초의 운영체제
    • 또한 당시 대부분의 운영체제가 어셈블리 언어로 작성되는 것이 일반적이었으나 유닉스는 대부분의 코드가 C 언어로 작성

유닉스의 소스 코드가 공개된 점은 대학이나 연구소에서 연구하는 것에 널리 보탬이 되었으며, 학문적인 입장에서는 현재까지 유닉스가 거의 표준 운영체제로 사용됨

운영체제의 자원 관리 기능

  • 하드웨어 자원
  • CPU 관리: 하나의 CPU에서 여러 프로세스를 실행할 때, 매 시점 어떠한 프로세스에 CPU를 할당할 것인지 결정하는 일이 필요하다. 이러한 일을 CPU 스케줄링이라고 한다.
    • 선입선출 기법 : 먼저 온 것을 먼저 처리해주는 방식 아무리 긴 작업이라도 먼저 들어온다면 먼저 처리해야해서 뒤에 짧은 작업들이 들어와도 기다려야해서 비효율적
    • 라운드 로빈 기법 : CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한 긴 작업을 요하는 프로세스가 들어와도 일정 시간이 지나면 CPU를 내놓고 대기열로 가야하기 때문에 짧은 프로세스들이 무작정 기다리는 것을 막을 수 있음
      • 우선순위 스케줄링 : 대기 중인 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스에 CPU를 먼저 할당
  • 메모리 관리: 메모리 관리를 위해 우녕체제는 메모리의 어떤 부분이 어떤 프로그램에 의해 사용되고 있는지를 파악하여 이를 유지하게 되는데, 이러한 정보는 주소를 통해 관리된다.
    • 고정분할 방식 : 물리적 메모리를 몇 개의 분할로 미리 나누어 관리
      • 하나의 분할에는 하나의 프로그램이 적재될 수 있으며 최대 프로그램의 개수는 분할의 개수로 정해져 있음 만약 분할의 크기보다 작은 프로그램이 적재되는 경우 남은 영역이 발생하는 데, 이것을 내부조각이라고 한다.
    • 가변분할 방식 : 매 시점 프로그램의 크기에 맞는 메모리를 분할해서 사용 분할의 크기 때문에 큰 프로그램의 실행이 제한되지는 않지만 물리적 메모리의 크기보다 큰 프로그램은 실행 불가능 프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역이 발생하는데 이를 외부조각이라고 함
    • 가상메모리 기법 : 모든 프로그램은 자신만의 가상메모리 주소를 갖고 운영체제는 이 주소를 물리적 메모리 주소로 매핑하는 기술을 이용해 주소를 변환시킨 후 프로그램을 물리적 메모리에 올림 프로그램의 전체 크기가 항상 동시에 사용되는 것은 아니기 때문에 현재 사용되고 있는 부분만 메모리에 올리고, 나머지는 하드디스크와 같은 보조기억장치에 저장해 두었다가 필요할 때 적재하는 방식을 취함 → 이때 사용되는 보조기억장치의 영역을 스왑 영역 이라고 부름
      • 가상메모리 주소 공간은 페이지라는 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑 영여게 일부분씩 저장 → 이를 페이징 기법이라고 함
  • 주변장치 및 입출력 장치 관리
    • 주변장치 및 입출력 장치는 인터럽트라는 메커니즘을 통해 관리가 이루어진다. 주변장치들은 CPU의 서비스가 필요할 때 신호를 발생시켜 서비스를 요청하는 데 이를 인터럽트라고 한다.
      • 인터럽트는 요청하는 장치와 발생 상황에 따라 다양한 종류가 있기 때문에 운영체제는 인터럽트의 종류마다 서로 다른 인터럽트 처리루틴을 가짐 주변 장치는 그 장치에서 일어나는 업무를 관리하는 CPU를 가지고 이를 컨트롤러라고 부름

 

 

출처 : 운영체제와 정보기술의 원리 - 이화여자대학교출판문화원 출판, 반효경 저