1. 운영체제의 정의
사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어입니다.
2. 운영체제의 역할과 목표
운영체제의 역할과 목표는 다음과 같이 연결지을 수 있습니다.
운영체제의 역할 운영체제의 목표
자원 관리 <-----> 효율성
자원 보호 <-----> 안정성
하드웨어 인터페이스 제공 <-----> 확장성
사용자 인터페이스 제공 <-----> 편리성
1) 자원 관리와 효율성
운영체제는 키보드, 네트워크카드, 사운드카드 등의 컴퓨터 자원을 응용 프로그램에 나누어주어
사용자가 원활하게 작업할 수 있도록 돕습니다. 만약 자원을 요청한 프로그램이 여러 개라면
적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수하여 다른 응용 프로그램에 나눠줍니다.
이러한 자원을 같은 자원이라도 효율적으로 관리하는 것이 운영체제의 목표입니다.
다시 말해 적은 자원을 사용하여 결과를 빨리 보여주는 것이 효율적인 운영체제입니다.
2) 자원 보호와 안정성
비정상적인 작업으로 부터 컴퓨터 자원을 보호하는 것도 운영체제의 역할중 하나 입니다.
고의가 아니더라도 어떤 응용 프로그램이 남의 영역을 침범한다면
다른 사람의 작업을 망치거나 데이터를 지울 수도 있기 때문입니다.
운영체제는 하드웨어 전체를 관리하는 소프트웨어로 사용자와 응용 프로그램은 운영체제 위에서 작업을 한다고 볼 수 있습니다.
따라서 운영체제가 분안정하면 모든 작업이 불안정 해집니다. 운영체제가 불안정하면 그 피해는 고스란히 사용자에게로 돌아가기 때문에 운영체제는 안정성이 담보되어야 합니다.
3) 하드웨어 인터페이스 제공과 확장성
우리가 어떤 제품을 사용할 때마다 별도의 소프트웨어를 설치해야 한다면 아주 불편할 겁니다.
운영체제는 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공합니다.
운영체제는 다양한 시스템 자원을 추가하거나 제거하기가 편리해야 합니다. 즉 확장성이 좋아야합니다.
하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤드 플레이(plug & play)기능을 제공해야 합니다.
4) 사용자 인터페이스 제공과 편리성
사용자가 운영체제를 편리하게 사용하도록 지원하기 위해 운영체제는 사용자 인터페이스를 제공합니다.
예를 들면 예전에 MS-DOS 와 같은 운영체제로 작업할 때는 마우스 없이 키보드만 사용했기 때문에
불편했지만 요즘은 그래픽 사용자 인터페이스 즉, GUI (Graphical User Interface)를 제공하므로 대부분의 작업을 마우스로 수행합니다.
운영체제는 효율성을 높이기 위해 응용 프로그램이나 사용자에게 제약을 가하면 안됩니다. 편리성은 운영체제의 목표입니다. 응용 프로그램과 사용자에게 다양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야합니다.
3) 운영체제의 역사
구분 | 시기 | 주요 기술 | 특징 |
0기 | 1940년대 | 없음 | 진공관(0과1) 사용 |
1기 | 1950년대 | 카드 리더, 라인 프린터 | 일괄작업 시스템 운영체제의 등장 |
2기 | 1960년대 초반 | 키보드, 모니터 | 대화형 시스템 |
3기 | 1960년대 후반 | C언어 | 다중 프로그래밍 기술 개발 시분할 시스템 |
4기 | 1970년대 | PC | 개인용 컴퓨터의 등장 분산 시스템 |
5기 | 1990년대 | 웹 | 클라이언트 / 서버 시스템 |
6기 | 2000년대 | 스마트폰 | P2P 시스템(메신터, 파일 공유) 그리드 컴퓨팅 클라우드 컴퓨팅 마술 인터넷 |
4) 운영체제의 구성
운영체제는 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려주는 인터페이스와, 운영체제의 핵심 기능을 모아놓은 커널로 구성됩니다.
5. 커널의 종류
- 단일형 구조 커널 : 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성되어 있습니다.
- 계층형 구조 커널 : 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층간의 통신을 통해 운영체제를 구현하는 방식
- 마이크로 구조 커널 : 운영체제가 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공합니다.
'CS > 운영체제' 카테고리의 다른 글
6) 교착 상태 (0) | 2020.09.14 |
---|---|
5) 프로세스 동기화 (0) | 2020.09.10 |
4) CPU 스케줄링 (0) | 2020.09.06 |
3) 프로세스와 스레드 (0) | 2020.09.04 |
2) 컴퓨터의 구조와 성능 향상 (0) | 2020.09.01 |
댓글