운영체제란 무엇인가?

infoqoch·2021년 2월 20일
0

운영체제

목록 보기
1/15

1. 운영체제(Operating System, OS)란 무엇인가?

  • 컴퓨터 하드웨어 바로 위에 설치되어, 소프트웨어와 사용자가 하드웨어 사이를 연결하는 소프트웨어 계층.
  • 좁은 의미의 운영체제 (커널) : 메모리에 상주하여 하드웨어의 자원을 배분하는 역할
  • 넓은 의미의 운영체제 (MS windows, Unix) : 커널과 그 외 다양한 소프트웨어.

2. 운영체제(커널)의 목표

  • 컴퓨터 시스템의 자원을 효율적으로 관리
  • CPU와 메모리, 입출력 장치의 자원을 각 사용자(각 가상머신)와 각 프로그램에 적절하게 배분하는 역할

3. 운영체제의 분류

3.1. 동시 작업 가능 여부

1) 단일 작업 (single tasking)

  • 한 번에 단 하나의 작업만 처리
  • MS-DOS
  • 작업만을 필요로 하는 현대의 특정 기기

2) 다중 작업 (multi tasking)

  • 한 번에 다양한 작업을 처리
  • MS windwos, Unix 등

3.2 사용자의 수

1) 단일 사용자(single user)

  • 단일한 사용자를 위한 시스템
  • MS-DOS, windows 등

2) 다중 사용자(multi user)

  • 다양한 사람이 하나의 시스템에 접근하여 작동
  • 단일 사용자를 위한 소프트웨어라 하더라도 서버를 구축하여 다중 사용자가 접근할 수 있도록 할 수 있음. window의 경우 로그인을 달리하여 하나의 컴퓨터에 다중 사용자가 사용 할 수 있음.

3.3 처리 방식

1) 일괄처리(batch processing)

  • 작업한 요청을 일정량 모아서 한번에 처리.
  • 초기의 Punch Card 시스템 (현재 전혀 사용하지 않음)
  • punch card의 경우 성적처리 시스템과 유사. OMR 카드의 결과값을 바로 응시자에게 답변하지 않음. 일괄적으로 OMR카드를 수거하여 컴퓨터가 그 값을 처리하고 일괄적으로 응시자에게 전달. 코딩한 punch card를 전산실이 모아서 일괄적으로 컴파일을 하는 방식.

2) 시분할(time sharing)

  • 자원(cpu 등)을 여러 사용자(혹은 작업)가 시간 단위로 공유/분할하여 사용.
  • 사용자의 입장에서는 자신의 입력 값을 즉각적으로 응답 받기 때문에 상호작용적임(interactive). 응답 시간이 일괄처리에 비하여 매우 짧음.
  • 결과 값 도출에 대한 제한 시간(deadline)이 존재하지 않음.

3) 실시간(Realtime OS)

  • 결과 값이 도출되어야 하는 제한 시간(deadline)이 존재하며 그 시간을 운영체제는 반드시 보장해야 함.
  • 미사일 / 원자로 / 반도체 등 엄격한 제어가 필요한 경우 사용.
  • Hard Realtime System : 매우 엄격한 실시간 운영체제. 시간을 보장받지 못하면 큰 문제가 발생할 수 있음.
  • Soft Realtime System : 제한 시간이 존재하나, 큰 문제가 발생하지고 불편함. 영상의 디코딩의 경우 1초에 24장의 이미지가 출력되도록 설계되었지만, 성능 상 문제로 이미지가 15장이 출력되더라도 치명적인 문제가 발생하는 것은 아님.

4. 운영 체제의 구조

  • 운영 체제는 cpu/메모리/외장메모리/입출력장치(I/O device)의 자원을 어떻게 효율적으로 분배하느냐가 가장 큰 쟁점.
  • 은행에서 단일한 상담사(단일 cpu)가 고객들을 응대하는 것과 유사. 은행 업무를 고객이 온 순서대로 처리를 하는 것이 공정할 수 있다.하지만 첫 번째 손님이 100분의 시간을 사용하고 그 뒤의 고객이 1분 밖에 업무를 하지 않는다고 가정하면, 전체 고객의 입장에서는 매우 비효율적일 수 있음. 자원의 효율적인 배분을 스케쥴링이라 함.

1) cpu 스케쥴링

  • 다른 장치에 비하여 매우 빠른 cpu의 자원을 효율적으로 사용하기 위한 루틴.
  • 여러 프로세스가 cpu를 공유하여 효과적으로 처리하기 위한 운영체제의 기능.

2) 메모리 관리

  • 한정된 메모리를 효율적으로 사용하기 위한 기능.
  • 필요한 메모리를 외장 메모리로부터 불러오고, 더 이상 필요 없는 메모리를 삭제하는 기능.
  • 작업을 필요로 하는 것을 예측하여 디스크로부터 메모리에 로딩해야 cpu의 성능을 최대한으로 사용할 수 있음. 사용의 횟수, 기간 등 과거의 기록을 통해 미래의 사용을 예측하여 메모리를 미리 로딩함.

3) I/O 디바이스

  • 입출력장치의 사용을 효율적으로 하기 위한 기능.
  • 디스크의 경우 헤더를 통해 저장된 데이타를 불러옴. 디스크가 요청된 순서대로 해당 값을 불러오기 보다, 헤더의 이동 경로에 따라 값을 불러오는 것이 더 효과적일 수 있음. (엘레베이터에서 100층 1층 99층 2층을 눌렀다고 하여, 그 순서대로 엘레베이터가 이동하는 것이 아닌, 1층 - 2층 - 99층 - 100층을 이동하는 것과 같음)

4) 기타

  • 프로세스 관리, 시스템 보호, 네트워킹 등.

5. 기타 용어 비교

  • Multitasking : 다중 작업
    -> Multiprogramming : 메모리에 다중 프로그램이 로딩 되어 있음.
    -> Time sharing : CPU를 시간을 분할하여 나누어 씀.

  • multiprocess : 하나의 컴퓨터에 다중 CPU가 있음.

profile
JAVA web developer

0개의 댓글