[운영체제] 1장 운영체제의 시작과 발전
1. 운영체제의 개념
1-1. 운영체제의 정의
운영체제란 무엇인가?
1
2
운영체제는 컴퓨터를 관리하는 특별한 기능의 코드 집합 혹은 프로그램이다.
간단히 말해 >운영체제란 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어이다.
즉, 운영체제는 모든 컴퓨터 자원을 관리한다.
자원에는 하드웨어 자원, 소프트웨어 자원, 데이터 자원이 있으며, 접근과 관리 권한을 독점적으로 가지고 자원이 여러 사용자와, 응용 프로그램에 의해 잘 공유되도록 관리하는 기능을 한다.
여기서 의문점은 왜 운영체제는 자원을 독점할까?
답은 사용자의 응용 프로그램들이 직접적인 자원에 접근이 가능하다면 자원의 훼손이 생길 수 있으며 그들간의 효과적인 공유가 불가능하기 때문이다.
앞서 자원의 관리를 설명했지만, 운영체제는 자원의 관리뿐 아닌 사용자에 대한 관리, 프로그램 실행에 관한 자원 관리, 성능 관리, 보안 관리 등의 기능도 수행한다.
이러한 일을 하는 운영체제 역시 소프트웨어 이며, 하드디스크에 설치되어 컴퓨터가 부팅될 때 메모리에 적재되어 실행된다. (PC에 전원을 인가하면 ROM에 저장된 부트로더에 의해 메모리에 적재됨)
1-2. 운영체제의 목적과 기능
운영체제의 궁극적인 목표는 크게 두 가지가 존재한다.
- 사용자의 컴퓨터 사용의 편리성 증가
- 자원의 효율적인 사용과 관리
운영체제는 위 목적을 위해 다양한 기능을 수행한다.
1
2
3
4
5
6
7
1. CPU/프로세스 관리
2. 메모리 관리
3. 파일 시스템 관리
4. 장치 관리
5. 네트워크 관리
6. 보안 관리
7. 기타 관리 (사용자 정보 및 시스템 오류 발견 및 대응)
1-3. 운영체제와 응용 소프트웨어
운영체제와 응용 소프트웨어는 모두 소프트웨어이다. 하지만 다양한 차이가 존재하는데
가장 큰 차이점은 목적의 차이이다
응용 소프트웨어
는 사용자의 편리와 편의를 위해 존재한다.운영체제
는 컴퓨터의 자원을 관리해, 응용 소프트웨어가 실행되는 동안 자원에 대한 서비스를 제공하고 컴퓨터 시스템의 효율적으로 사용될 수 있도록 관리한다.운영체제 응용 소프트웨어 목적 자원 관리 특정 목적을 위해 개발됨 기능 프로세스, 메모리 등 자원 관리 특정 목적 개발 언어 C/C++, 어셈블리 다양한 언어 실행 부팅 시 로드되어 종료 시까지 실행 사용자에 의한 실행/종료 자원 접근 권한 독점 관리 운영체제에 요청
2. 운영체제의 태동
2-1 고정 프로그램 컴퓨터
ENIAC이 대표적이며 각 프로그램은 하드웨어의 전선을 연결하여 기계에 고착화 시키는 방식으로 다른 프로그램을 실행하고자 하면 전선을 해체하고 해당 프로그램에 맞게 다시 전선을 연결해야한다.
2-2 내장 프로그래밍 컴퓨터
1
2
3
폰노이만은 CPU와 메모리의 개념이 분리된 새로운 방식의 컴퓨터 개념을 도입하였다.
- 프로그램은 메모리에 적재되고, CPU는 메모리의 명령어를 하나씩 가지고 와서 처리하는 방식
내장 프로그램 컴퓨터는 하드웨어와 소프트웨어의 개념을 분리
시켜 의의를 가진다.
2-3 프로그램 로더의 발견
과거 개발자들은 자신이 작성하고자 하는 프로그램 뿐만아닌 프로그램을 메모리에 적재하는 ‘로더’ 프로그램을 작성을 해야 했다. 모든 개발자가 프로그램을 작성할 때 로더 프로그램을 작성하는 것은 시간 낭비이기에 저장장치에서 메모리로 프로그램을 적재하는 기본적인 기능을 가진 로더 프로그램의 필요성을 느꼈고, 이것이 바로 운영체제로 발전하는 싹이 되었다.
- GM OS - 로더의 작성이 필요없는 최초의 원시 운영체제
- GM - NAA - 여러 개발자의 프로그램을 순차적으로 메모리에 적재하여 실행하는 배치 운영체제 ``` GM-NAA 운영체제는 이와 같은 기능을 가진다.
- 어셈블러 코드 : 사용자 코드를 기계어로 번역
- 로더 프로그램 : 프로그램 메모리에 적재
- 운영체제 메인 코드와 공통 I/O 코드 ```
이를 통해 개발자들의 대기 시간과, 당시 값 비싼 컴퓨터의 노는 시간을 줄일 수 있었으며, 개발자는 더 이상 I/O 장치를 제어하는 코드를 작성하지 않아도 되었기에 개발자와 관리자가 분리되었다.
3. 운영체제의 발전
3-2. 배치 운영체제
배치(batch)는 하나의 프로그램이라고 할 수 있으며, 여러 배치 작업이 한 번에 하나씩 비대화식으로 실행되어 프린터에 결과를 출력한다. 배치 운영체제로 작업을 처리하는 방식을 배치 처리
라고 부른다.
3-3. 다중프로그래밍 운영체제
해당 운영체제의 등장은 배치 운영체제의 낮은 CPU 활용률을 극복하기 위해서이며 가능한 많은 사용자의 프로그램을 실행시키고자 하였다.
프로그램이 실행되는 도중 I/O 요청을 받으면 메모리에 적재된 다른 프로그램을 실행하여I/O 기능을 처리하는 도중 CPU의 활용율을 높이는 방식이다.
다중 프로그래밍 운영체제으로 인해, 해결해야 할 문제가 생겼다.
1
2
3
4
5
6
7
1. 큰 메모리 필요
2. 프로그램의 메모리 할당 및 관리
3. 메모리 보호
4. CPU 스케줄링 컨텍스트 스위칭
5. 인터럽트 개념 도입
6. 동기화
7. 교착 상태 해결
3-4. 시분할 다중 프로그래밍 운영체제
여러 프로그램을 시간 단위로 나누어 번갈아 실행시키는 다중 프로그래밍 기법
이는 앞서 소개한 운영체제들의 비대화식 처리 방식, 느린 응답과 오랜 대기 시간의 문제를 해소하고자 하였다.
동작 과정은 다음과 같다.
시분할 운영체제는 여러 개의 프로그램을 메모리에 적재하고 시간 할당량을 정하여 시간 할당량만큼 메모리에 적재된 프로그램에게 돌아가면서 CPU를 할당하고 실행시킨다. CPU의 처리 속도는 사용자가 키를 입력하는 속도에 비해 엄청 빠르다. 그러므로 사용자가 명령을 입력하는 시간동안 CPU가 다른 사용자의 명령들을 충분히 처리할 수 있기에 각 사용자는 자신의 명령에 대한 응답이 늦게 온다고 여기지 않는다.
3-5. 개인용 운영체제
개인용 컴퓨터의 도입과 상용화에는 마이크로 프로세서
의 개발이 결정적인 역할을 하였다.
3-8. 운영체제의 종류
데스크톱
, 서버 컴퓨터
, 모바일
, 임베디드
, 실시간
운영체제가 있다.