Home 운영체제-기본-개념
Post
Cancel

운영체제-기본-개념

1장-운영체제-소개

1. 운영 체제란?

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

컴퓨터 안의 하드웨어랑 프로그램을 어떻게 잘 관리할 것인가.


  • 협의의 운영체제 (커널)
    • 운영체제의 핵심 부분으로 메모리에 상주하는 부분이다.
  • 광의의 운영체제
    • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념이다.
    • ex) 윈도우 운영체제


2. 운영 체제의 목적

컴퓨터 하드웨어 => 운영 체제 => 각종 소프트웨어 및 사용자


1) 컴퓨터 시스템의 자원을 효율적으로 관리한다.

  • 여러 프로그램들이 자원을 어떻게 공유하고 분할해서 사용하는가. (하드웨어 자원은 이미 정해져 있다)
  • 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리하도록 돕는다.
    • 사용자가 형평성 있는 자원을 분배한다. 형평성
    • 주어진 자원으로 최대한 성능을 내도록 한다. 효율성
  • 사용자 및 운영체제 자신을 보호한다.
  • 프로세스, 파일, 메시지 등을 관리한다.
  • 예시 : 실행 중인 프로그램들에게 짧은 시간 씩 CPU를 번갈아 할당.
  • 예시: 실행 중인 프로그램들에 메모리 공간을 적절히 분배.


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

  • 사용자 및 소프트웨어가 직접 하드웨어에 접근하지 않으며 운영체제를 통해 하드웨어에 접근한다.
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행한다.
  • 운영체제는 동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같이 만든다.


3. 운영체제의 분류

1) 동시 작업 가능 여부

  • 단일 작업 (single tasking)
    • 한 번의 하나의 작업만 처리한다.
    • ex) MS - DOS 프로프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없다.
  • 다중 작업 (multi tasking)
    • 동시에 두 개 이상의 작업을 처리한다.
    • ex) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있다.


2) 사용자의 수

여러 사용자가 동시 접근을 할 수 있는가.

  • 단일 사용자 (single user)
    • MS - DOS, MS WIndows
  • 다중 사용자 (multi user)
    • UNIX, NT server


3) 처리 방식

  • 일괄 처리 (batch processing)
    • 작업 요청의 일정량을 모아서 한꺼번에 처리한다. (실시간으로 처리하지 않는다.)
    • 작업이 완전 종료될 때까지 기다려야 한다. (interative하지 않음)
    • ex) 초기 Punch Card 처리 시스템
  • 시분할 (time sharing)
    • 현재의 운영체제
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용한다.
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가진다. (interative한 방식)
    • ex) UNIX
  • 실시간 (Realtime OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS이다.
    • dealine이 존재한다.
    • ex) 원자로/ 공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
    • 실시간 시스템의 개념 확장
      • Hard realtime system (경성 실시간 시스템)
      • Soft realtime system (연성 실시간 시스템)


용어설명
Multitasking컴퓨터에서 여러 작업을 동시에 수행하는 것.
MultiProgramming컴퓨터에서 여러 작업을 동시에 수행하는 것.
여러 프로그램이 메모리에 올라가 있음을 강조한다.
Time sharing컴퓨터에서 여러 작업을 동시에 수행하는 것.
CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조한다.
MultiProcess컴퓨터에서 여러 작업을 동시에 수행하는 것.
MultiProcessor하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미한다.


4. 운영체제의 예시

1) 유닉스 (UNIX)

  • 코드의 대부분을 C언어로 작성한다.
    • C언어: 유닉스를 개발하기 위해 고안된 언어
    • 이전에는 어셈블리어를 통해 운영체제를 개발했다.
  • 높은 이식성, 최소한의 커널 구조
  • 복잡한 시스템에 맞게 확장이 용이하다.
  • 소스 코드가 공개되어 있다.
  • 프로그램 개발에 용이하다.
  • 다양한 버전
    • System V, FreeBSD, SunOS, Solaris
    • Linux


2) MS Windows

  • MS사의 다중 작업용 GUI 기반 운영체제
  • Plug and Play, 네트워크 환경을 강화했다.
  • DOS용 응용 프로그램과 호환성을 제공한다.
  • 풍부한 지원 소프트웨어


5. 운영 체제의 구조

1) 하드웨어 관리

하드웨어운영체제 역할
CPUCPU 스케쥴링
CPU를 누구에게 주어야 하는가.
Memory메모리 관리
한정된 메모리를 어떻게 나눠서 사용하는가.
Disk파일 관리
디스크에 파일을 어떻게 보관하는가, 디스크에도 스케쥴링이 필요함.
I/O device입출력 관리
각 다른 입출력 장치와 컴퓨터 간에 어떻게 통신하는가. (인터럽트 기반)
I/O 디바이스가 CPU에 비해 속도가 매우 느림.


2) 그 외

  • 프로세스 관리
    • 프로세스의 생성과 삭제
    • 자원 할당 및 반환
    • 프로세스 간 협력
  • 보호 시스템
  • 네트워킹
  • 명령어 해석기


This post is licensed under CC BY 4.0 by the author.