[KOCW] 운영체제 - 반효경, 운영체제 개요
운영체제 개요
운영체제(Operating System, OS)란 무엇인가
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층.
- 협의: 커널, 운영체제의 핵심 부분. 부팅 이후로 메모리에 상주하는 부분.
- 광의: 커널 + 주변시스템 유틸리티 포함. 메모리에 상주하지 않는 별도의 프로그램들.
운영체제의 목표
- 컴퓨터 시스템을 편하게 사용할 수 있는 환경 제공.
- 운영체제는 동시 사용자/프로그램들이 각각 독자적인 컴퓨터에서 수행되는 것 같은 인상을 제공.
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행.
- 컴퓨터 시스템의 자원(프로세서, 기억장치, 입출력 장치 등 하드웨어 자원)을 효율적으로 관리.
- 효율적 + 형평성. 주어진 자원으로 최대한의 성능. 사용자간의 형평성 있는 자원 분배.
- CPU를 짧은 시간씩 번갈아서 프로그램들에 할당.
- 메모리 공간을 적절하게 실행중인 프로그램들에 할당.
- 프로세스, 파일, 메시지 등을 관리. -> 소프트웨어 자원까지도 관리함.
- 사용자 및 운영체제 자신을 보호.
- 효율적 + 형평성. 주어진 자원으로 최대한의 성능. 사용자간의 형평성 있는 자원 분배.
=> 운영체제는 어떤 프로그램에 얼마만큼의 시간/공간을 어떻게 효율적으로 할당할 것인지 판단한다.
운영체제의 분류
동시 작업 가능 여부
- 단일 작업(Single Tasking)
- 한 번에 하나의 작업만 처리
- MS-DOS. 특수목적으로 제작된 기계(엘리베이터 등). 한 명령의 수행을 끝내기 전에 다른 명령 수행 불가.
- 다중 작업(Multi Tasking)
- 동시에 두 개 이상의 작업 처리
- UNIX, MS Windows 등. 하나의 수행이 끝나기 전에 다른 명령/프로그램 수행할 수 있음.
사용자 수
- 단일 사용자(Single User)
- MS-DOS, MS Windows
- 다중 사용자(Multi User)
- 하나의 컴퓨터에 복수의 사용자가 접근해 동시에 사용할 수 있는 운영체제. UNIX, NT server 등.
처리 방식
- 일괄 처리(Batch Processing)
- 작업을 모아서 한꺼번에 처리하는 방식.
- 현대의 운영체제에서는 보기 드문 방식.
- 초기 Punch Card 처리 시스템. 작업카드 적재 -> 작업 종료 후 출력하는 방식. Interactive하지 않음.
- 시분할(Time Sharing)
- 여러 작업을 작은 시간단위로 나누어 번갈아 분할하여 사용하는 방식.
- Interactive한 방식.
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가진다. 그렇다고 정해진 시간 안에 무조건 되는 것은 아님. 단지, 사람에 특화된 시스템.
- 각 사용자가 컴퓨터로부터 서비스를 제공받는 시간을 숫자로 표시.
- UNIX 등 현대의 운영체제의 다수.
- 실시간(Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨을 보장.
- 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어 등 정교한 시간이 요구되는 때에 사용.
- 개념 확장
- Hard realtime system(경성 실시간 시스템): 데드라인을 못 지키면 치명적임.
- Soft realtime system(연성 실시간 시스템): 데드라인은 존재하지만 못 지킨다고 치명적이진 않음. ex) 스트리밍 서비스
=> 지금 우리가 쓰고 있는 것은 다중 작업, 다중 사용자, 시분할 방식의 OS
몇 가지 용어
- Multitasking
- Multiprogramming : 메모리에 여러 프로그램이 올라가 있음을 강조.
- Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조.
- Multiprocess
=> 네 가지 모두 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻함.
- Multiprocessor : 하나의 컴퓨터에 CPU(Processor)가 여러 개 붙어 있음.
운영체제의 예
- UNIX(유닉스)
- 대형컴퓨터를 위함.
- 코드의 대부분을 C언어로 작성.
- 높은 이식성, 최소한의 커널 구조, 복잡한 시스템에 맞게 확장 용이, 소스코드 공개, 프로그램 개발에 용이.
- System V, FreeBSD, SunOS, Solaris, Linux
- MS
- 개인 사용자 PC를 위함.
- DOS(Disk Operating System)
- 단일작업용 운영체제. 메모리 관리 능력의 한계(주기억장치: 640KB)
- Windows
- 다중작업용 GUI 기반 운영체제.
- Plug and Play, 네트워크 환경 강화, DOS용 응용 프로그램과 호환성 제공, 풍부한 자원 소프트웨어.
- MacOS, iOS 등
- Apple에서 만든 컴퓨터/스마트폰 운영체제.
운영체제의 구조
- CPU: 누구한테 CPU를 줄까? -> CPU 스케줄링
- 시간 차를 최대한 줄이면서 가장 효율적으로 자원을 관리할 수 있는 원리.
- 메모리: 한정된 메모리를 어떻게 쪼개지? -> 메모리 관리
- CPU에서 원활하게 사용될 수 있을 최소한의 메모리는 보장해주는 원리.
- Disk로 밀어낼 것이 무엇인지, 즉 미래에 어떤 프로그램이 쓰일지 예측.
- Disk: 디스크에 파일을 어떻게 보관하지? -> 파일 관리
- Disk에 들어온 요청 중 head가 이동하면서 처리할 수 있는 것들은 처리해가는 원리.
- head의 움직임을 최소화하는 것.
- I/O Device: 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지? -> 입출력 관리
- 인터럽트. CPU는 워낙 빠르니 자기 일을 함. 그러다가 I/O 장치가 인터럽트를 걸면 CPU가 그를 처리.
- 프로세스 관리
- 프로세스 생성/삭제
- 자원 할당/반환
- 프로세스간 협력
- 그 외
- 보호 시스템
- 네트워킹
- 명령 해석기(command line interpreter)
출처
해당 내용은 KOCW 강의 중 이화여자대학교의 운영체제-반효경 강의의 내용을 정리한 것입니다.
댓글남기기