운영체제의 종류
[1] 운영체제의 개념
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며,
사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있는 환경을 제공하는 여러 프로그램의 모임 ( 시스템 소프트웨어 )
- 운영체제는 사용자와 하드웨어 사이의 인터페이스 역할을 한다.
- 여기서 하드웨어는 CPU, 주기억장치, 보조기억장치, 통신 장치, I/O 장치 등으로 구분된다.
- 운영체제의 관리 대상이 되는 자원은 하드웨어도 있겠으나,
소프트웨어 자원 ( ex. 프로세스 )도 포함된다.
[2] 운영체제의 특징
- 사용자 편리성
- 인터페이스
- 스케줄링 ( ex. CPU Scheduling )
- 자원관리
- 제어
I. 사용자 편리성 제공 & 인터페이스 기능
- 사용자가 직접적으로 하드웨어, 프로세스를 관리.제어하긴 힘들다.
마치 운전을 할 때 자동차의 엑셀을 밟으면 내부 동작이 어떻게 되냐를 알지 않고 그냥 기능만 아는 것처럼,
운영체제는 그 모든 내부 동작을 감추고 ( = 사용자가 알 필요 없게 하고 = 캡슐화 ),
사용자에게 직관적인 인터페이스를 제공한다.
II. 스케줄링 담당
- 다중 사용자와 다중 응용 프로그램 환경에서,
자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당한다.
( ex. CPU Scheduling )
III. 자원 관리
- CPU, 메모리 공간, 기억장치, 입출력 장치 등의 자원을 관리한다.
IV. 제어 기능
- 입출력 장치와 사용자 프로그램을 제어 ( ex. 인터럽트, 시스템 콜 cf. Polling )
[3] 운영체제에서 커널의 기능
- 운영체제는 크게 인터페이스(쉘)과 커널의 구조로 이루어져 있다.
- 운영체제의 핵심적인 기능 ( = HW를 직접 다루는 구현체 프로그램 )은 커널에 모여있다면,
인터페이스(쉘)은 이러한 커널을 사용자가 보다 편리하게 사용할 수 있게 해준다.
<커널의 기능>
- 프로세스 관리
: 프로세스 스케줄링 및 동기화 관리
: 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당
- 기억장치 관리
: 프로세스에게 메모리 할당 및 회수 관리 담당
- 주변장치 관리
: 입.출력 장치 스케줄링 및 전반적인 관리 담당
- 파일 관리
: 파일의 생성과 삭제, 변경, 유지 등의 관리 담당
[4] 운영체제의 종류
- Windows 계열
- Linux/Unix 계열
- MacOS
- Android
<Windows 계열 운영체제 특징>
- GUI 제공
- 자동감지 기능 제공 ( Plug and Play : PnP )
: 하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 자동감지 기능 제공
: 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때,
해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능
: PnP 기능을 활용하기 위해서는, HW 및 SW 모두 PnP를 지원해야 함.
- OLE ( Object Linking and Embedding ) 사용
: 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공
: 애플리케이션 사이에서 데이터를 공유하는 기술
-> 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체를
현재 작성중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있도록 하는 기능.
*Object Linking(객체 연결)
: A 응용프로그램의 객체(문자, 그림)을 B 응용 프로그램에
해당 객체의 경로 등을 이용해 연결하는 것,
B 응용프로그램에서 해당 객체 수정 시 A 응용 프로그램에서도 변경사항이 적용됨.
( 프로그래밍의 함수 호출 방식 중, Call By Reference 방식과 비슷 )
*Object Embedding(객체 삽입)
: 어떤 객체를 다른 객체에 포함시키고 싶을 때, 해당 객체의 내용을 그대로 삽입하는 것.
포함된 후 그 전 객체를 수정해도, 삽입된 객체는 변화하지 않는다.
- 선점형 멀티테스킹 방식 ( Preemptive Multitasking )
: 동시에 여러 프로그램을 실행하는 멀티태스킹을 하면서,
운영체제가 각 작업의 CPU 이용시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제종료시키고 모든 시스템 자원을 반환하는 방식 ( = 하나의 응용프로그램이 CPU를 독점하는 것을 방지 )
=> 멀티테스킹 방식의 한 종류로
프로세스가 CPU를 차지해서 사용하더라도,
운영체제가 타이머나 여타 트리거를 통해 개입하여 강제로 CPU 사용을 빼앗아올 수 있는 경우를
선점형 멀티테스킹이라 한다.
( cf. 비선점형 멀티테스킹 :
CPU를 차지하고 있는 쓰레드가 자신이 이제 CPU 연산이 필요 없음을 나타냈을 때에만
운영체제가 이를 회수할 수 있는 경우를 말한다. )
https://namu.wiki/w/%EB%A9%80%ED%8B%B0%ED%83%9C%EC%8A%A4%ED%82%B9#s-2
멀티태스킹 - 나무위키
이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권
namu.wiki
// (23.06.25) 나무위키
현행 대부분의 OS ( Windows, Linux, OS X .. ) 등은 모두 선점형 멀티테스킹 방식이다.
이유는 간단한게, 범용 운영체제이기에 여러 프로그램을 실행시키는데
그 프로그램들을 모두 검증된 프로그램이 아니고, 버그를 가지고 있다.
만약, 어떤 프로세스가 버그에 빠져서 자원을 독식하려한다면,
멀티테스킹이 제대로 이루어지지 않을 것이다.
< Linux / Unix 계열 운영체제 특징>
- 대화식 운영체제 기능 제공
: 사용자 명령 기반 대화식 운영체제 기능 제공
- 다중 작업 기능 제공
: 다수의 작업(프로세스)가 중앙 처리 장치와 같은 공용자원을 나누어 사용하여,
한 번에 하나 이상의 작업을 수행하는 기능 제공
- 다중 사용자 기능 제공
: 여러 대의 단말이 하나의 컴퓨터에 연결되어서,
여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공
- 이식성 제공
: 90% 이상 C언어로 구성 & 시스템 프로그램이 모듈화되어 있어서
다른 하드웨어 기종으로 쉽게 이식이 가능
- 계층적 트리 구조 파일 시스템 제공
: 통합적인 파일 관리가 용이하다.
<Mac OS 특징 ( OS X )>
- 유닉스계열
- 개발환경 자체가 유닉스 환경에 최적화되어있는 경우가 많음
- iOS 개발 가능
<Android 운영체제 특징>
- 휴대 전화를 비롯한 휴대용 장치를 위한 운영체제,
미들웨어, 사용자 인터페이스 그리고 표준 응용프로그램(웹 브라우저, 이메일 클라이언트..)을
포함하고 있는 운영체제
- 리눅스 커널 위에서 동작하며, Java 와 Kotlin 언어로 응용 프로그램을 작성할 수 있도록 하고,
컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다.
- 안드로이드 소프트웨어 개발 키트(SDK)를 통해
응용 프로그램을 개발하는 데 필요한 각종 도구와 API를 제공한다.
*) 미들웨어
- 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 사용하는 프로그램,
운영체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어
- 응용 소프트웨어가 운영체제로부터 제공받는 서비스 이외에
추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어
- 양 쪽을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어,
네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게
어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어
- Database System, 전자 통신 소프트웨어, 메시지 및 쿼리 처리 소프트웨어
'정보처리기사' 카테고리의 다른 글
[ OS ] 메모리 관리 (0) | 2023.06.26 |
---|