운영체제 (OS : Operating System)
- 컴퓨터 시스템의 자원들을 효율적으로 관리
- 사용자가 편리하고 효과적으로 컴퓨터를 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 사용자와 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어
- 다른 응용프로그램의 유용한 작업을 할 수 있도록 환경제공
- 프로세스, 기억장치, 주변장치, 파일 등을 관리하는 기능을 수행
- ex) Linux, WIndows, MacOs, Unix, MS-DOS 등
목적
- 처리 능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도( Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
기능
- 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리한다.
- 자원의 스케줄링 기능 => 효율적인 관리
- 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
- 하드웨어, 네트워크 관리 및 제어
- 데이터 및 자원을 관리 및 공유 기능
Windows
* 1990년대 Microsoft 사가 개발한 운영체제
특징 | 설명 |
그래픽 사용자 인터페이스(GUI) |
키보드로 명령어 직접 입력 X 마우스로 아이콘이나 메뉴를 선택하여 모든 작업 수행하는 방식 |
선점형 멀티태스킹 (Preemptive Multi-Tasking) |
운영체제가 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행중 문제가 밸생하면 해당 프로그램 강제 종료 및 시스템 자원 반환 |
PnP (Plug and Play) |
시스템에 프린터나 사운드 카드 등의 하드웨어를 설치하면 필요한 시스템 환경 자동 구성 |
OLE (Object Linking and Embedding) |
여러 프로그램에서 작성된 문자나 그림 등의 개체를 현재 작성중인 문서에 자유롭게 연결 or 삽입하여 편집 |
255자의 긴 파일명 | \ / * ? " <> | 를 제외한 모든 문자 및 공백을 사용하여 최대 255자까지 파일 이름을 지정할 수 있음 |
Single-User 시스템 | 컴퓨터 한 대를 한사람만이 독점해서 사용 |
Unix
* 1960년대 AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제
- 시분한 시스템 (Time Sharing System)을 위해 설계된 대화식 운영체제
- 소스가 공개된 개방형 시스템(Open System)
- 대부분이 C 언어로 작성 => 이식성 높음 / 장치, 프로세스 간의 호환성 높음
- Multi-User, Multi-Tasking을 지원
- 트리(Tree) 구조의 파일 시스템
구성
구성 요소 | 설명 |
커널(kernel) | 하드웨어 보호, 프로그램과 하드웨어 간의 인터페이스 역할 UNIX의 가장 핵심적인 부분 프로세스, 기억장치 , 파일, 입출력, 프로세스간 통신 관리 데이터 전송 및 변환 |
쉘(Shell) | 명령어 해석기 사용자의 명령어를 인식 프로그램 호출, 명령 수행 시스템과 사용자 간의 인터페이스 종류 : Bourne Shell, C Shell, Korn Shell |
유틸리티 프로그램 (Utility Program) |
일반 사용자가 작성한 응용프로그램 처리 DOS에서의 외부 명령어에 해당 종류 : 에디터, 컴파일러, 인터프리터, 디버거 등 |
Linux
* 1991년 리누스 토발즈(Linus Torvalds)가 UNIX를 기반으로 개발한 운영체제
- 프로그램 소스 코드가 무료로 공개 => 프로그래머가 원하는 기능 추가 가능
- 다양한 플랫폼에 설치 가능 / 재배포 가능
- UNIX와 완벽한 호환
MacOS
* 1980년대 Apple 사가 UNIX를 기반으로 개발한 운영체제
- iMac과 MacBook 등 애플 사에서 생산하는 제품에서만 사용가능
- 드라이버 설치 및 install과 uninstall의 과정이 단순
Android
* Google 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
- 모든 코드가 공개된 개방형 소프트웨어
- Java 와 Kotlin으로 어플리케이션 작성
- 스마트폰
IOS
* Apple 사에서 개발한 유닉스 기반의 모바일 운영체제
- 애플제품에만 탑재
- iPhone, iPod, iPad
'CS' 카테고리의 다른 글
Process에 대해 알아보자! (0) | 2022.04.29 |
---|---|
페이지 교체 알고리즘 (0) | 2022.04.28 |
가상기억장치(Virtual Memory) 구현기법 (0) | 2022.04.25 |
기억장치 관리 (0) | 2022.04.24 |
프로그래밍 언어의 이해(절차적, 객체지향, 스크립트, 선언) (0) | 2022.04.19 |