1. 운영체제 개념
1) 운영체제 정의
- 운영체제 : 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램 실행을 관리하고 제어하는 시스템 소프트웨어
- 컴퓨터가 켜질 때 처음으로 적재되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리하는 소프트웨어
- 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어
2) 운영체제의 목적과 기능
- 운영체제의 목적
- 컴퓨터 사용의 편리성
- 컴퓨터 자원관리의 효율성
- 운영체제의 기능
- CPU/프로세스 관리
- 메모리 관리
- 파일 시스템 관리
- 장치 관리
- 네트워크 관리
- 보안 관리
- 기타 관리 (사용자 계정 관리, 통계, 오류 발견 및 대응, 부팅)
3) 운영체제와 응용소프트웨어
운영체제 응용소프트웨어
목적 | 컴퓨터 하드우어나 응용소프트웨어 등 자원 관리 | 컴퓨터 사용자들의 요구를 충족시킬 수 있도록 설계된 소프트웨어 |
기능 | 프로세스, 메모리, 파일 시스템, 입출력 장치 등 자원 관리와 사용자 관리 | 소프트웨어를 만든 특정 목적만 수행 |
개발 언어 | C/C++, 어셈블리어 | C/C++뿐 아니라 JAVA, Python, C# 등 다양한 언어 |
실행 | 부팅 시 메모리에 적재되어 실행을 시작하여 컴퓨터를 끌 때까지 실행 | 사용자가 명령을 통해 실행시키거나 종료 |
자원에 대한 접근 권한 | 컴퓨터의 모든 자원에 대해 배타적 독점 사용 권한 | 컴퓨터 자원을 사용하고자 할 때 반드시 운영체제에게 요청 |
2. 운영체제의 발전
1) 배치 운영체제
- 컴퓨터의 idle 시간을 줄여 활용률 향상
- 개발자와 관리자를 구분하여 실행
- 대기 중인 프로그램을 한 번에 하나씩 적재하고 실행
2) 다중프로그래밍 운영체제
(1) 출현 배경
- 프로그램 실행 형태로 인한 CPU의 idle 시간 발생
- CPU의 idle 시간 줄이기 → CPU 활용률 증가 → 처리율 증가
(2) 다중프로그래밍 기법
- 미리 여러 프로그램을 메모리에 적재
- 프로그램 실행 도중 I/O가 발생하여 대기시 메모리에 적재된 다른 프로그램 실행
- CPU의 유휴시간을 줄이기위해 미리 메모리에 작업을 올려놓는 방식
(3) 다중프로그래밍으로 인한 이슈
- 여러 프로그램을 동시에 올리기 위한 큰 메모리 필요
- 프로그램의 메모리 할당 및 관리 이슈
- 메모리 보호 이슈
- CPU 스케줄링과 컨텍스트 스위칭
- 실행시킬 프로그램 선택 스케줄링 / 컨텍스트 스위칭 필요
- 인터럽트 개념 도입
- 동기화
- 여러 프로그램이 동일한 자원을 액세스할 때 발생하는 문제
- 교착 상태 해결
- 프로세스들이 서로 상대가 가진 자원을 요청하면서 무한 대기를 교착 상태 해결
3) 시분할 다중프로그래밍 운영체제
(1) 출현 배경
- 배치와 다중 프로그래밍의 문제점 인식
- 비대화식 처리방식
- 느린 응답시간, 오랜 대기 시간
(2) 시분할 운영체제
- 빠른 프로그래밍 디버깅 필요
- 사용자에게 빠른 응답을 제공하는 대화식 시스템
- 시간을 나누어 돌아가며 각 명령을 처리하는 시분할 시스템 개발
4) 개인용 운영체제
(1) 출현 배경
- 시분할 시스템 사용의 불편함
- 개인용 컴퓨터 필요성
(2) 개인용 컴퓨터 등장
- 개인용 운영체제 MS-DOS 등장
5) 임베디드 운영체제
- 임베디드 컴퓨터 : 장치들의 목적을 지원하는 소형 컴퓨터
- 임배디드 운영체제 : 임베디드 컴퓨터에서 장치들을 제어하고 작동시키는 기능 수행
6) 모바일 운영체제
- 하드웨어의 발전으로 휴대 가능한 크기의 모바일 장치 출현
- 모바일 컴퓨터 내 장치들을 구동시키고, 이들을 활용하는 다양한 응용프로그램을 실행하도록 설계된 운영체제
7) 다양한 운영체제
- 데스크톱 운영체제 : Windows, Mac OS, Linux
- 서버 컴퓨터 운영체제 : 네트워크에 연결하고 24시간 실행되는 컴퓨터, 보안이 중요
- 실시간 운영체제 : 실시간 어플리케이션 혹은 테스크를 각각 정해진 데드라인 시간이내에 처리되도록 보장하는 것을 목표
'Computer Science > Operating System' 카테고리의 다른 글
First Come First Served (FCFS) 구현 (0) | 2023.07.11 |
---|---|
[운영체제] CPU 스케줄링 (0) | 2023.07.11 |
[운영체제] 스레드와 멀티스레딩 (0) | 2023.07.10 |
[운영체제] 프로세스와 프로세스 관리 (1) | 2023.07.09 |
[운영체제] 컴퓨터 시스템과 운영체제 (0) | 2023.07.08 |