본문 바로가기

OS/운영체제론

[운영체제론] 운영체제란? 운영체제의 역사 (2) / 2021.09.23

* 참고 자료 : 운영체제론 한빛아카데미

 

 

9. 응용 프로그램 기반

1981년에 IBM 개인용 컴퓨터의 등장으로 응용 소프트웨어 산업이 활성화되었다.

독립 소프트웨어 개발사들은 MS-DOS에서 동작하는 IBM PC용 응용 프로그램들을 발표하였다.

운영체제는 응용 소프트웨어 개발자들이 메모리, 입출력, 통신 관련 관리 부담을 해소시켜주었다. API 제공으로 하드웨어 조작을 간단히 해결할 수 있었다. 또한 응용 프로그램 개발자들은 특정 작업을 위해 어떤 루틴을 호출해야 하는지만 알면 된다.

 

10. 운영체제 환경

1) 범용 컴퓨터

비교적 넉넉한 메인 메모리와 디스크, 고속 프로세서, 다양한 주변장치로 구성되어있다. 대개 개인용 컴퓨터나 워크스테이션으로 사용이 된다. 범용 컴퓨터에 해당하는 다양한 개념을 고성능 하드웨어를 갖춘 고사양 웹 서버와 데이터베이스 서버에도 적용할 수 있으며, 고성능 환경에서 사용하는 운영체제는 대용량 메모리와 특수 목적 하드웨어, 여러 프로세서 등은 지원하도록 설계해야 한다.

 

2) 임베디드 시스템

임베디드 시스템은 휴대폰, PDA 같은 소형 기기에 특화된 기능을 제공한다. 임베디드 시스템 환경에서는 효율적인 자원 관리가 요구된다. 그리고 임베디드 운영체제는 저장 공간이 제한될 때가 많기 때문에 적은 코드로 서비스를 제공하며 전력 관리나 사용자 친화적인 인터페이스도 고려해야 한다.

 

3) 실시간 시스템

실시간 시스템은 정해진 시간 안에 특정 작업을 완료해야 하며 예로는 항공운항 통제, 핵 원자로 모니터 등이 있다.

 

4) 가상 머신

가상 머신은 실제 운영체제 위에서 사용자 응용 프로그램처럼 작동하는 컴퓨터를 소프트웨어로 추상화한 것이다. 가상 머신을 적용한 예로는 여러 운영체제의 인스턴스를 동시에 실행하는 것이나, 소프트웨어나 하드웨어를 사용해 시스템에 존재하지 않는 소프트웨어나 하드웨어의 기능을 흉내 내는 것이다.

가상 머신은 소프트웨어의 이식성, 즉 다양한 이기종 플랫폼에서 실행할 수 있는 능력을 높여준다.

자바 가상 머신(JVM)은 가장 널리 사용하는 가상 머신 중 하나다.

 

1. 핵 발전소에 있는 온도 모니터의 시스템은 어떤 유형으로 설명할 수 있는가?
답 : 하드 실시간 시스템.

2. 가상 머신의 장단점을 설명하라.
답 : 가상 머신은 이식성을 높여준다. 그러나 가상 머신은 실제 머신보다는 효율이 떨어진다.

 

11. 운영체제의 구성 요소와 목표

 

1) 운영체제의 핵심 구성 요소

- 프로세스 스케줄러 : 프로세서에서 프로세스를 실행할 시점과 기간을 결정한다.

- 메모리 관리자 : 프로세스에 메모리를 할당할 시점과 방식, 메인 메모리가 가득 찼을 때 처리 방법을 결정한다.

- 입출력 관리자 : 하드웨어 장치들과 연동해 입출력 요청을 처리한다.

- 프로세스 간 통신 관리자 : 프로세스들이 서로 통신할 수 있게 한다.

- 파일 시스템 관리자 : 저장 장치에 있는 이름 있는 데이터 모음을 조직화하고, 해당 데이터에 접근할 수 있는 인터페이스를 제공한다.

 

1. 다음 각 기능을 수행하는 운영체제의 구성 요소가 무엇인지 답하라.
a. 디스크에 기록하는 일 -> 입출력 관리자
b. 다음번 실행할 프로세서를 결정하는 일 -> 프로세스 스케줄러
c. 새로운 프로세스를 메모리의 어느 위치에 배치할 것인지 결정하는 일 -> 메모리 관리자
d. 디스크에 새로운 파일을 구성하는 일 -> 파일 시스템 관리자
e. 프로세스가 다른 프로세스에 데이터를 보낼 수 있게 하는 일 -> 프로세스 간 통신 관리

2. 사용자가 디스크의 모든 영역을 임의로 접근해서 읽고 쓸 수 있게 하면 위험한 이유는 무엇인가?
답 : 허가받지 않은 사용자가 우연히 혹은 악의로 운영체제 파일과 같은 중요한 데이터를 덮어쓰거나 기밀문서 같은 민감한 정보를 권한 없이 읽을 수 있다.

 

2) 운영체제의 목표

- 효율성(efficiency)

- 견고함(robustness)

- 규모 확장성(scalability)

- 확장성(extensibility)

- 이식성(portability)

- 보안(security)

- 상호 작용성(interactivity)

- 사용성(usablilty)

 

다음 특징에 부합하는 운영체제 목적은 무엇인가?
a. 사용자들은 적절한 권한이 없는 서비스나 정보에 접근할 수 없다. -> 보안
b. 운영체제는 다양한 하드웨어 구성에서 동작할 수 있다. -> 이식성
c. 시스템 성능은 메모리와 프로세서를 추가함에 따라 꾸준히 향상될 수 있다. -> 규모 확장성
d. 운영체제가 최초 설계 시에는 가능하지 않던 장치들을 지원할 수 있다. -> 확장성
e. 하드웨어 오류가 생겨도 시스템 전체의 고장을 유발하지 않는다. -> 견고함

 

12. 운영체제 아키텍처

현대 운영체제는 많은 서비스를 제공하고 다양한 하드웨어와 소프트웨어 자원을 지원하기 때문에 매우 복잡하다.

이 복잡성을 해결하게 하기 위해 운영체제 아키텍처는 설계자들이 운영체제 구성 요소를 구성하고 각 구성 요소가 실행될 권한을 지정할 수 있게 해 주었다. 운영체제 설계는 운용체제의 모든 구성요소를 커널에 포함하는 모놀리식 설계, 계층적 설계, 필수요소만 커널에 포함하는 마이크로 커널 설계가 있다.

 

1) 모놀리식 아키텍처

운영체제의 모든 구성 요소를 커널에 포함하며, 단순히 기능 호출만으로도 다른 구성 요소와 직접 통신할 수 있다.

따라서 속도 면에서 우수하나, 컴퓨터 시스템에 제한 없이 접근이 가능하므로 오류나 악성 코드에 취약하다.

 

2) 계층적 아키텍처

운영체제가 점점 커지고 복잡해짐에 따라 순수한 모놀리식 설계는 점점 다루기 어려워졌다. 이 문제를 해결하기 위해 계층적 아키텍처가 시도되었다. 계층적 아키텍처는 유사한 기능을 수행하는 요소들을 그룹으로 묶어 계층으로 구분하는 것이다. 하위 계층은 구체적인 구현을 숨긴 채 인터페이스를 총해 상위계층에 서비스를 제공한다. 따라서 모놀리식 운영체제보다 모듈화가 잘 되어 있다. 또한 계층적 아키텍처는 소프트웨어 검증과 디버깅 및 수정 과정을 간편하게 해 준다.

 

3) 마이크로커널 아키텍처

마이크로커널 아키텍처는 소수의 서비스만 제공한다. 이 소수의 서비스에는 낮은 수준의 메모리 관리, 프로세스 간 통신, 프로세스 간 협력을 위한 동기화 등이 포함되어있다. 따라서 모듈화 정도가 높아서 확장성, 이식성, 규모 확장성이 높다. 그러나 모듈화는 모듈 간의 통신 정도가 높아 성능이 떨어질 수도 있다.

 

4) 네트워크 운영체제와 분산 운영체제

많은 네트워크 운영체제와 분산 운영체제의 구조는 클라이언트/서버 모델에 기반을 둔다. 클라이언트 컴퓨터는 서버에 프로세서 이용이나 파일 같은 자원을 요청한다. 

 

- 네트워크 운영체제

네트워크로 연결된 환경이라면 프로세스들이 자신을 생성한 컴퓨터에서든, 네트워크에 있는 다른 컴퓨터에서든 모두 실행할 수 있다.

네트워크 운영체제의 중요한 구성 요소로는 네트워크 파일 시스템이 있다.

 

- 분산 운영체제

분산 운영체제는 한 대 이상의 컴퓨터에 있는 자원을 관리하는 특별한 운영체제이다.

분산 시스템은 여러 컴퓨터를 강력한 컴퓨터 한 대처럼 보이게 해 준다. 분산 운영체제는 프로세스가 공유 데이터에 접근하기 때문에 복잡한 알고리즘을 요구한다.