운영체제의 정의
- 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램을 실행을 관리하고 제어하는 시스템 소프트웨어
- 운영체제는 컴퓨터가 아니다.
- 운영체제는 실체가 있는 시스템 소프트웨어이다.
- 컴퓨터가 켜질 때 처음으로 적재되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어
- 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어
운영체제의 목적
- 사용자의 컴퓨터 사용의 편리성
- 컴퓨터의 자원 관리의 효율성
운영체제의 기능
- CPU / 프로세스 관리 (process management)
- 메모리 관리 (memory management)
- 파일 시스템 관리 (file system management)
- 장치 관리 (device management)
- 네트워크 관리
- 보안 관리
- 기타 관리
- 사용자 관리 - 사용자 계정 관리
- 통계 - CPU, 메모리, 네트워크, 사용자의 접속 시간 등
- 오류 발견 및 대응
- 부팅
운영체제와 응용소프트웨어의 차이점
운영체제 | 응용소프트웨어 | |
목적 | 컴퓨터 하드웨어나 응용소프트웨어 등 자원 관리 | 컴퓨터 사용자들의 요구를 충족시킬 수 있도록 설계된 소프트웨어 |
기능 | 프로세스, 메모리, 파일 시스템, 입출력 장치 등 자원 관리와 사용자 관리 | 소프트웨어를 만든 특정 목적만 수행 |
개발 언어 | C / C++, 어셈블리어 | C / C++ 뿐만 아니라 Java, Python, C#등 다양한 언어 |
실행 | 부팅 시 메모리에 적재되어 실행을 시작하여 컴퓨터를 끌 때까지 실행 | 사용자가 명령을 통해 실행시키거나 종료시킴 |
자원에 대한 접근 권한 | 컴퓨터의 모든 자원에 대해 배타적 독점 사용 권한 | 컴퓨터 자원을 사용하고자 할 때 반드시 운영체제에게 요청 |
배치 운영체제
출현 배경 : 컴퓨터의 idle 시간을 줄여 컴퓨터의 활용률 향상
배치 운영체제 컴퓨터 시스템
- 개발자와 관리자의 구분
- 개발자는 펀치 카드를 입력 데크에 두고 결과를 기다린다.
- 배치 운영체제는 자동으로 테이프 장치에 대기중인 프로그램을 한 번에 하나씩 적재하고 실행한다.
다중프로그래밍 - Multiprogramming 운영체제
출현 배경
- 1960년대 중반, CPU 등 하드웨어 속도 개선, 컴퓨터 가격 증가
- 프로그램의 실행 형태로 인한 CPU의 idle 시간 발생
- CPU의 idle 시간을 줄이기 → CPU 활용률 증가 → 처리율 증가(더 많은 사용자 프로그램 실행)를 목표로 함
다중프로그래밍 기법 출현
- 미리 여러 프로그램을 메모리에 적재
- 프로그램 실행 도중 I/O가 발생하여 대기하게 될 때, 메모리에 적재된 다른 프로그램 실행
정의 : 다중프로그래밍은 여러 프로그램을 메모리에 올려놓고, CPU가 한 프로그램을 실행하다 I/O가 발생하면, 입출력이 완료될 때까지 CPU가 메모리에 적재된 다른 프로그램을 실행하는 식으로 CPU의 노는 시간을 줄이는 기법이다.
다중프로그래밍 시스템에서 3개의 프로세스가 실행되는 과정
배치 운영체제와 다중프로그래밍 운영체제의 실행 비교
배치 운영체제는 A, B, C가 각각 종료된 후에 실행이 된다. CPU가 놀고 있는 시간이 많다.
하지만 다중프로그래밍 운영체제는 I/O 시간 안에서 CPU가 작업할 수 있기 때문에 비교적 빠르다. 즉 CPU가 놀고 있지 않기 때문에 CPU 활용률이 좋다.
성능을 비교해보면
배치 운영체제는 총 실행시간이 30이다. CPU 유휴 시간은 14이며 CPU의 활용률은 30에서 14를 뺀 16과 30을 나누어 16/30 = 0.53 = 53%이다. 작업 처리율은 3개의 프로세스가 실행중이므로 3/30 = 0.1 작업/시간이다.
다중프로그래밍 운영체제는 총 실행시간이 17이다. CPU 유휴 시간은 1이며 CPU의 활용률은 17에서 1을 뺀 16과 17을 나누어 16/17 = 0.94 = 94%이다. 작업 처리율은 3개의 프로세스가 실행중이므로 3/27 = 0.176 작업/시간이다.
다중프로그래밍 도입으로 인한 이슈
큰 메모리 이슈
- 여러 프로그램을 동시에 메모리에 올려놓기 위해서는 메모리의 크기를 늘릴 필요가 있음
프로그램의 메모리 할당 및 관리 이슈
- 몇 개의 프로그램을 적재? 메모리 어디에 적재? 프로그램 당 메모리 크기는? 등의 관리 기법 필요
메모리 보호 이슈
- 프로그램이 다른 프로그램 영역을 침범하지 못하게 막는 방법이 필요하다
CPU 스케줄링과 컨텍스트 스위칭
- 실행시킬 프로그램 선택 스케줄링이 필요하다
- 프로그램 실행 상태를 저장할 컨텍스트를 정의
- 컨텍스트 스위칭이 필요하다
인터럽트 개념 도입
- 운영체제는 I/O 장치로부터 입출력 완료를 전달받는 방법이 필요하다
동기화
- 여러 프로그램이 동일한 자원을 액세스할 때 발생하는 문제를 해결
교착 상태 해결
- 프로세스들이 서로 상대가 가진 자원을 요청하면서 무한 대기를 교착상태 해결
시분할 다중프로그래밍 (Time Sharing Multiprogramming) 운영체제
출현 배경 : 배치처리와 당시 다중프로그래밍에서 비대화식 처리 방식과 느린 응답시간, 오랜 대기시간에 대한 문제점 인식
시분할 운영체제의 시작 : 빠른 프로그래밍 디버깅과 사용자에게 빠른 응답을 제공하는 대화식 시스템 제안
배치 운영체제와 시분할 다중프로그래밍 운영체제의 실행 비교
배치 운영체제와 다중프로그래밍 운영체제의 성능은 위에서 따져보았으니 시분할 운영체제의 성능만 보겠다.
시분할 운영체제는 총 실행시간이 16이다. CPU 유휴 시간은 0이며 CPU의 활용률은 16과 16을 나누어 16/16 = 1.00 = 100%이다. 작업 처리율은 3개의 프로세스가 실행중이므로 3/16 = 0.1875 작업/시간이다.
'⚙️ Computer Science > 명품 운영체제' 카테고리의 다른 글
Operating System - 컴퓨터 시스템 계층 구조, 운영체제, 운영체제의 역할, 운영체제와의 관계, 운영체제의 필요성, 운영체제의 기능 (0) | 2023.08.19 |
---|---|
Operating System - 컴퓨터 계층 구조, CPU, 캐시 메모리, 메모리, bus, CPU 레지스터, Context Switching (0) | 2023.07.10 |
[명품 운영체제] - Chapter02 연습문제 + 복합문제 풀이 (1) | 2023.06.19 |
[명품 운영체제] - Chapter01 연습문제 (0) | 2022.04.07 |