Frinee의 코드저장소

운영체제 개요

by Frinee
운영체제(OS, Operating System)
컴퓨터 시스템의 하드웨어와 소프트웨어를 관리하고 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 소프트웨어

 

 

 

1. 운영체제의 기능

  1. 컴퓨터 시스템 내의 자원관리
    1. CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다.
    2. 메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지를 관리한다.
    3. 디스크 파일 관리: 디스크 파일을 어떠한 방법으로 보관할지 관리한다. 
    4. I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.
  2. 컴퓨터 시스템 인터페이스 제공
  3. 악성 프로그램에 대한 보안

 

 

2. 운영체제의 분류

 2.1. 동시작업 지원

  1. 단일작업용 운영체제
    • 초창기 시절에 등장한 한 번에 하나의 프로그램만 실행시키는 운영체제
    • ex) 도스(DOS)
  2. 다중작업용 운영체제
    1. 동시에 여러 개의 프로그램을 처리하고 여러 프로그램이 CPU와 메모리를 공유하게 됨, ex) MS 윈도우, UNIX 등
    2. 각 프로그램에 대한 키보드의 입력 결과를 바로 화면에 보여주는 대화형 시스템의 특징을 가짐

 

 

 2.2. 다중 사용자 동시 지원

  1. 단일 사용자용 운영체제
    • 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제, ex) DOS, MS 윈도우
  2. 다중 사용자용 운영체제
    • 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제, ex) 서버 (email, web)

 

 2.3. 작업처리 방식 기준

  1. 일괄처리 방식
    • 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
    • 모든 작업이 종료된 후 결과를 얻을 수 있어 응답시간이 긴 단점이 있음
  2. 시분할 방식
    • 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
    • 일괄처리 방식에 비해 짧은 응답시간을 갖게 됨
    • 사용자의 요청에 대한 결과를 곧바로 얻을 수 있어 대화형 시스템으로 표현되기도 함
  3. 실시간 운영체제
    • 정해진 시간 안에 일이 반드시 처리됨을 보장하는 시스템, ex) 원자로, 공장 제어시스템, 미사일 제어시스템 등
    • 시간제약에 중요성에 따라 경성 실시간 시스템연성 실시간 시스템으로 나뉨
      • 경성 실시간 시스템: 매우 위험한 결과를 초래할 수 있는 로켓, 원자로 제어 시스템 등이 있음
      • 연성 실시간 시스템: 멀티미디어 스트리밍 시스템과 같은 데이터가 정해진 시간 단위로 전달외어야 올바른 기능을 수행할 수 있는 시스템

 

3. 운영체제의 예

3.1. MS 윈도우

윈도우 95 발표회

  • Microsoft 사에서 이전의 MS-DOS와 윈도우 3.1 등을 발전시킨 개인용 컴퓨터를 위한 운영체제
  • 윈도우95 출시로 하나의 온전한 운영체제에서 프로그램이 실행됨.
  • 윈도우 XP부터는 그래픽 환경과 아이콘 방식을 채택하여 초보자에게도 쉽게 배울 수 있는 방법 제공

특징

  • 플러그 앤 플레이(plug and play): 시스템에 새로운 하드웨어 장착 시 운영체제가 자동으로 감지하여 그에 맞게 설정
  • 안정성은 유닉스와 비교했을 때 떨어졌음
  • 사용이 편리한 여러가지 기능들을 제공

 

3.2. 유닉스 (UNIX)

  • 1969년 벨 연구소에서 최초로 개발, 프로그램 개발을 위해 설계된 운영체제
  • 이식성이 좋고, 커널의 크기가 작으며 소스코드가 공개되었다는 점에서 학계에서 연구용으로 많이 쓰였고 확대되어 널리 사용되는 운영체제로 자리잡음
  • 모듈 단위로 작성된 운영체제였기 때문에 하드웨어•소프트웨어의 발전에도 확장성을 지원하여 사용할 수 있음.
  • 이식성: 해당 소프트웨어를 다른 기종의 기계로 옮기는 것이 용이한 정도
  • 대부분의 코드가 C언어로 작성
  • 최근 리눅스(Linux)의 등장으로 개인용 컴퓨터에서도 유닉스를 널리 사용함.

 

 

4. 운영체제의 자원관리 기능

4.1. CPU 스케줄링

  • 매 시점 어떠한 프로세스에 CPU를 할당해 작업을 처리할 지에 대해 결정하는 작업
  • ex) 선입선출(FCFS, First Come, First Serve), 라운드 로빈(Round Robin), 우선순위(Priority) 등
  1. 선입선출(FCFS) 기법
    • 도착한 프로세스 중 먼저 온 것을 먼저 처리하는 방식
    • CPU 자체의 효율은 좋지만 전체 시스템에서는 비효율적일 수 있음.
  2. 라운드 로빈(Round Robin) 기법
    • CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정하는 방식
    • 일반적으로 1회 할당시간을 밀리초(ms) 단위로 사용
  3. 우선순위 스케줄링 기법
    • 프로세스들에 우선순위를 부여하여 우선순위대로 먼저 CPU에 할당하는 방식
    • 지나치게 오래 기다리는 프로세스가 발생하지 않도록 우선순위를 점차 높이는 방안도 사용

 

4.2. 메모리 관리 방식

  • 프로그램에 메모리가 필요할 때 할당하고, 필요하지 않을 때 회수하는데 이를 잘 판단해 메모리 공간을 효율적으로 사용할 수 있는 방식이 필요
  • ex) 고정분할 방식, 가변분할 방식, 가상메모리 방식 등
  1. 고정분할 방식
    • 물리적 메모리를 몇 개의 분할로 미리 나누어 관리
    • 분할 크기보다 큰 프로그램은 적재가 불가능하고 작은 프로그램의 경우 내부조각이 발생하여 효율적이지 않음.
    • 내부조각(internal fragmentation): 분할 크기보다 작은 프로그램이 적재된 경우 남는 영역
  2. 가변분할 방식
    • 매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
    • 물리적 메모리의 크기보다 큰 프로그램은 사용할 수 없음
    • 분할의 크기와 개수가 동적으로 변하여 기술적 관리 기법이 필요
    • 외부조각(external fragmentation): 프로그램에 할당되지 않았지만 크기가 작아 프로그램에 올리지 못하는 메모리 영역
  3. 가상메모리 기법
    • 물리메모리와는 다른 별도의 가상메모리주소가 부여됨
    • 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원
    • 가상메모리 저장 방식
      • 운영체제는 가상메모리의 주소를 물리적 메모리 주소로 매핑하여 주소를 변환한 후 프로그램을 물리적 메모리에 올림
      • 현재 사용되고 있는 부분만 메모리에 올리고 나머지는 하드디스크와 같은 보조기억장치에 저장했다가 필요할 때 적재
      • 보조기억장치의 영역을 스왑 영역(swap area)이라 함.
      • 가상메모리 주소 공간은 페이지(page)라는 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑 영역에 일부분 저장하는 데 이를 페이징(paging) 기법이라 함.

 

4.3. 주변장치 및 입출력장치 관리

  • 인터럽트(interrupt): 주변장치들을 CPU가 서비스가 필요한 경우 서비스를 요청하기 위해 발생시키는 신호
  • ex) 키보드 입력, 마우스 클릭
  • CPU는 인터럽트가 발생했을 시 작업
    1. 하던 작업을 중지
    2. 수행 중이던 작업 상태 저장
    3. 인터럽트를 처리
    4. 다시 원래의 작업을 계속 수행

 

 

자료

  •  운영체제와 정보기술의 원리 (반효경, 2020.05)

'[컴퓨터 과학자 스터디] > 운영체제' 카테고리의 다른 글

CPU 스케줄링  (0) 2024.10.27
프로세스 관리  (0) 2024.10.22
프로그램의 구조와 실행  (0) 2024.10.21
컴퓨터 시스템의 동작 원리  (0) 2024.10.15
컴퓨터 및 정보기술의 역사  (1) 2024.10.11

블로그의 정보

프리니의 코드저장소

Frinee

활동하기