OS 운영체제 특징 및 종류

 

운영체제

운영체제란 응용프로그램이 실행되는 과정에서 하드웨어들을 제어하여 응용프로그램을 실행시키고 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어이다.

부팅

부팅이란 컴퓨터 전원을 넣은 후 사람이 컴퓨터를 사용할 수 있도록 준비하는 과정이다.

하드디스크에 저장된 운영체제를 읽어 메인 메모리로 옮기고 실행시키는 작업

운영체제의 특징

  • 여러 프로그램을 같이 실행시키며 서로 충돌없이 실행되도록 프로그램 실행을 제어
  • 컴퓨터 하드웨어와 프로그램 사이의 인터페이스라고도 할 수 있다.
  • 컴퓨터에서 발생할 수 있는 각종 오류나 예외상황을 감지하고 상위 계층에게 보고
  • 컴퓨터 자원의 이용 현황에 대한 통계자료를 제공

image-20200329212705593

프로그램 (OS 위의 계층)

  • 유틸리티(utility) : 시스템 프로그램
    • (디버거(debugger), 컴파일러(compiler), 디스크 관리 프로그램, 시스템 진단 프로그램)
  • 응용프로그램(Application Program) : 사용자가 일상 생활에서 사용하는 프로그램

image-20200329213646411

폰 노이만 구조(von Neumann Architecture)에 따라 소프트웨어가 실행되려면 메인 메모리에 위치해 있어야 한다. 즉, 보조기억장치에 있는 운영체제와 프로그램은 보관용일 뿐이며 이들이 실행되기 위해 메모리로 복사되어 들어온다.

운영체제 중에서 핵심 적이며 자주 이용되는 기능인 커널(kernel)은 항상 메인 메모리에 상주

image-20200329214758721

System Call Interface : 시스템 콜(system call) 함수들의 집합인데, 프로그램과 운영체제와의 인터페이스에 해당한다. (나중에 자세히 설명)


운영체제의 운용 기법

1. 단순 일괄 처리 시스템 (배치 프로세싱 batch processing)

초기의 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식

2. 멀티프로그래밍 시스템 (다중 프로그래밍)

  • 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식 -> 프로세서의 수에 따라.
  • 하나의 주기억장치에 두 개 이상의 프로그램을 기억시켜 놓고, 하나의 CPU와 대화하면서 동시에 처리 -> 메인 메모리의 크기가 커져야 한다.
  • CPU의 사용률과 처리량 증가 but, 반응시간이 늦다.

**3. 타임쉐어링 시스템 (시분할 시스템) **

  • 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해 줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 주는 방식. (라울드 로빈 방식이라고도 한다.)
  • 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에 CPU의 전체 사용 시간을 작은 작업 시간량으로 나누어서 그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리 (‘타임 슬라이스’ 또는 ‘타임 퀀텀’이라 한다.)
  멀티프로그래밍 타임쉐어링
context switch 적음 많음
throughput 높음 낮음

4. 다중 처리 시스템

  • 여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
  • **하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 **시스템의 신뢰성과 안정성이 높음

5. 실시간 처리 시스템 (임베디드 시스템에서 주로 사용)

  • 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식
  • 처리 시간이 단축되고, 처리 비용 절감
  • 우주선 운행, 교통 제어, 레이더 추적기, 은행의 온라인 업무, 의료기기 등 에서 사용

6. 다중 모드 처리 (x)

  • 일관 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식

7. 분산 처리 시스템 (네트워킹)

  • 여러 개의 컴퓨터를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
  • 개별 컴퓨터들이 분담하여 일을 처리하므로 처리 속도가 빠르며 서비스나 데이터의 가용성이 높다
  • **하나의 컴퓨터가 고장나더라도 다른 컴퓨터를 이용하여 업무를 처리할 수 있으므로 **시스템의 신뢰성과 안정성이 높음

프로세스 스케줄링

CPU 스케줄링 또는 잡 스케줄링(job scheduling)이라고도 불린다.

CPU로 하여금 다음에 어떤 프로그램을 실행할 것인지 결정하는 일.


운영체제 기능

  • 프로세스 관리(process management) : 프로세스를 생성하고 실행을 제어,관리하는 기능들을 의미한다.
  • 메인 메모리 관리(memory management) : 프로세스가 실행될 수 있도록 메인 메모리 공간을 할당하고 회수하는 일을 의미한다.
  • 파일 관리(file management) : 파일을 보조기억장치에 저장하고 파일시스템을 운영하는 기능들 집합이다.
  • 입출력 관리(I/O management) : 컴퓨터 시스템에서의 입력과 출력을 관리하는 기능들 집합이다.
  • 보조기억장치 관리(secondary storage management) : 하드 디스크와 같은 보조기억장치의 공간을 할당하고 관리하는 기능들을 말한다.
  • 네트워킹 : 컴퓨터 통신에 필요한 제어 관리 기능들의 집합이다.
  • 정보 보안 관리 : 사용자 인증 및 실행권한 관리에 대한 것이다.
  • 명령해석시스템(command interpreter system) : 운영체제에 주는 사용자 명령을 해석하고 관련 함수를 실행 시키는 기능들이다.

네트워킹

  • 분산 처리 시스템

명령해석시스템

  • CLI (문자식 명령어 인터페이스), GUI (그래픽 사용자 인터페이스)
  • 명령이 올바른 것인지, 즉 시스템에 등록된 명령인지와 문법적으로 오류가 없는 지를 확인
  • 명령은 시스템 콜을 호출하고 시스템 콜은 다시 운영체제 내부 함수들을 호출한다.

시메트릭 멀티프로세서(SMP : symmetric multiprocessor) 시스템

CPU를 여러 개 가진 컴퓨터

  멀티프로그래밍 멀티프로세싱
프로세서 (CPU) 1 다수
사용자 1 다수
각 프로세서의 동작 방식 멀티프로그래밍 멀티프로그래밍, 타임쉐어링 등
어느 순간 실행 가능한 프로그램 수 1 (컨커런트 프로그래밍) 프로세서 개수만큼(패러랠 프로그래밍)

프로세스 동기화(process synchronization). SMP는 각 프로세서가 각자 실행할 인스트럭션을 가지고 오기 위해 메모리에 같이 접근하거나 기타 어떤 하드웨어 자원을 사용하려고 접근할 때 서로 충돌이 일어나지 않도록 접근 을 통제하는 기능, 즉 프로세스 동기화(process synchronization) 기능이 있다. 자세한 내용은 대학원에서 다룬다.

컨커런트 프로그래밍(concurrent programming). CPU가 여러 프로그램을 진행시키지만 서로 다른 시간대에 실행하는 방식

패럴엘 프로그래밍(parallel programming), 병렬 프로그래밍. 전체적으로는 멀티프로세싱으로 실행하는데 각 프로세서 하나 입장에서 보면 멀티프로그래밍으로 실행하는 방식


운영체제 종류

  • 내장형 시스템 운영체제(임베디드 시스템 embedded system) : 일반 사용자를 대상으로 하는 기능들 보다는 기기를 안전하고 정확하게 조작, 제어할 수 있도록 빠르게 반응하는 기능이 강화되는 게 일반적이다. 따라서 내장형 시스템 운영체제는 실시간 운영체제인 경우가 많다
  • 범용 운영체제
    • 유닉스 (UNIX) : AT&T가 개발하여 무료로 배포. 초기에는 파일 시스템(s5fs), 라인 에디터(ed), 초기 쉘(shell) 등이 포함되었고, 많은 기관들이 기능을 향상시키는 연구를 진행함.
      • 버클리 대학의 BSD(Berkeley Software Distribution) : csh(C shell), 페이징, ffs(fast file system) 기능의 추가 뿐만 아니라 TCP/IP의 구현 등 네트워킹 기능 또한 추가됨.