정보처리기사
운영체제(Operating System)
shiherlis
2023. 7. 16. 17:37
1. 운영체제의 개념
1) 운영체제의 개념
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며,
사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임 - 컴퓨터 사용자와 하드웨어간의 인터페이스로 동작하는 시스템 소프트웨어의 일종
- 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공
- 프로세스, 기억장치, 주변장치, 파일 등의 관리 기능
- 종류 : Windows, UNIX, LINUX, MacOS, MS-DOS
2) 운영체제의 목적
처리 능력(Throughput) | 일정 시간 내에 시스템이 처리하는 일의 양 |
반환 시간(Turn Around Time) | 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 |
사용 가능도(Availabilty) | 시스템을 사용할 필요가 있을 때 즉시 사용한 정도 |
신뢰도(Reliability) | 시스템이 주어진 문제를 정확하게 해결하는 정도 |
3) 운영체제의 기능
- 프로세서(Processor), 기억장치(주기억장치, 보조기억장치), 입출력장치, 파일 및 정보등의 자원 관리
- 자원 스케줄링 기능 : 자원을 효율적으로 관리하기 위해
- 인터페이스 제공
- 시스템의 하드웨어/ 네트워크를 관리.제어함
- 데이터 관리, 데이터 및 자원의 공유 기능 제공
2. 운영체제의 종류
- Windows
- 1990년대 MS 사가 개발한 운영체제
- GUI (Graphic User Interface)
키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식 - 선점형 멀티태스킹(Preemptive Multi-Tasking)
동시에 여러 개의 프로그램을 실행하는 멀티 태스킹을 하면서 운영체제가 각 작업의
CPU이용시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료시키고
모든 시스템 자원을 반환하는 방식 - PnP(Plug and Play, 자동 감지 기능)
컴퓨터에 시스템 프린터나 사운드 카드 등의 하드웨어 설치 시
해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능 - OLE(Object Linking and Embedding)
다른 여러 응용프로그램에서 작성된 문자나 그림 등의 개체(Object)를
현재 작성중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능 - 파일명 최대 255자
- Single-User 시스템
컴퓨터 한 대를 한 사람이 독점하여 사용
- UNIX
- AT&T 벨 연구소, MIT, General Electric이 공동 개바한 운영체제
- 시분할 시스템(Time Sharing Syste)을 위해 설계된 대화식 운영체제
- 대부분 C언어로 작성되어있어 이식성 ↑, 장치/프로세스 간의 호환성 ↑
- 다중사용자(Multi-User) , 다중 작업(Multi-Tasking) 지원
- 트리(Tree)구조의 파일 시스템
- 커널(Kernel)
유닉스의 핵심부분
하드웨어를 보호하고, 프로그램과 하드웨어간의 인터페이스 역할을 담당
프로세스(CPU 스케줄링)관리, 기억장치 관리, 파일 관리, 입.출력 관리 등 여러가지 기능 수행 - 쉘(Shell)
사용자의 명령어를 인식하여 프로그램을 호출하고 명령하을 수행하는 명령어 해석기
시스템과 사용자간의 인터페이스 담당
종류 : Bourne Shell, C Shell, Korn Shell - 유틸리티 프로그램(Utility Program)
일반사용자가 작성한 응용 프로그램 처리 시 사용
DOS에서의 외부 명령어에 해당
종류: 에디터, 컴파일러, 인터프리터, 디버거
- LINUX
- 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
- 소스코드가 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능 추가 가능
- UNIX와 완벽하게 호환
- MacOS
- 애플(Apple)사가 UNIX를 기반으로 개발한 운영체제
- iMac과 MacBook 등 애플 사에서 생산하는 제품에서만 사용 가능
- 드라이버 설치 및 install/Uninstall 과정이 단순
- Android
- Google사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
- 모든 코드가 공개된 개방형 소프트웨어
- Java,Kotlin으로 애플리케이션을 작성함
- 스마트폰 등의 휴대용 장치에서 주로 사용
- iOS
- 애플사에서 개발한 유닉스 기반의 모바일 운영체제
- 애플사 고유의 모바일 운영체제로 타사 제품은 iOS를 탑재할 수 없음