운영체제의 개념
운영체제의 정의
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
운영체제의 목적
- 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축 등
- 운영체제의 성능을 평가하는 기준
-> 처리능력 : 일정 시간 내에 시스템이 처리하는 일의 양
-> 반환 시간(≒응답 시간) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸리는 시간
-> 사용 가능도 : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
-> 신뢰도 : 주어진 문제를 정확하게 해결하는 정도
운영체제의 기능
- 프로세서(처리기 / Processor / CPU), 기억장치(주기억, 보조기억), 입 출력 장치, 파일 및 정보 등의 자원 관리
- 자원을 효율적으로 관리하기 위해 스케쥴링 기능 제공
- 사용자와 시스템 간 편리한 인터페이스 제공
- 각종 하드웨어와 네트워크를 관리 제어
- 데이터 관리, 데이터 및 자원의 공유 기능 제공
- 시스템의 오류 검사 및 복구
- 자원 보호 기능 제공
- 입 출력에 대한 보조 기능 제공
- 가상 계산기 기능 제공
운영체제의 주요 자원 관리
- 프로세스 관리 : 프로세스 스케쥴링 및 동기화 관리
- 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리
- 주변장치 관리 : 입 출력장치 스케쥴링 및 전반적인 관리
- 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리
운영체제의 종류
- Windows, UNIX, LINUX, MacOS, MS-DOS 등
Windows
Windows의 개요
- 마이크로소프트에서 개발한 운영체제
Windows 시스템의 특징
- 그래픽 사용자 인터페이스(GUI, Graphci User Interface) : 키보드로 명령어를 수행하지 않고 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행
- 선점형 멀티태스킹 : 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환
- Pnp(Plug and Play) : 하드웨어를 설치할 때 해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능
- OLE(Object Linking and Embedding) : 다른 응용 프로그램에서 작성된 문자나 그림 등의 개체 현재 작성 중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있는 기능
- Single User 시스템 : 컴퓨터 한대를 한 사람이 독점 사용
UNIX / LINUX / MacOS
UNIX의 개요 및 특징
- 1960년대 AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제
- 시분할 시스템을 위해 설계된 대화식 운영체제
- 소스코드가 개방형 시스템로 구성되어 있음
- 대부분 C언어로 작성되어 이식성이 높으며 장치, 프로세스 간 호환성이 높음
- 다중 사용자(Multi-User) 및 다중 작업(Multi-Tasking)을 지원
- 트리 구조의 파일 시스템을 가짐
UNIX 시스템의 구성
- 커널(Kernel)
-> 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행됨
-> 하드웨어를 보호하고 프로그램과 하드웨어 간의 인터페이스 역할을 담당
-> 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등 여러 가지 기능 수행
- 쉘(Shell)
-> 명령어를 인식하여 수행하는 명령어 해석기
-> 시스템과 사용자 간의 인터페이스 담당
-> DOS의 COMMAND.COM과 같은 기능 수행
-> 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재
-> 보조기억장치에서 교체 처리 가능
-> 파이프라인 기능 지원
-> 파이프라인 : 둘 이상의 명령을 함께 묶어 처리한 결과를 다른 명령의 입력으로 전환하는 기능
-> 입출력 재지정을 통해 입력과 출력의 방향을 변경할 수 있음
-> 공용 Shell이나 사용자가 만들 Shell을 사용할 수 있음
- 유틸리티(Utility Program)
-> 사용자가 작성한 외부 프로그램을 처리
-> DOS에서의 외부 명령어에 해당
-> 에디터, 컴파일러, 인터프리터, 디버거 등
LINUX의 개요 및 특징
- 1991년 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
- 프로그램 소스 코드가 무료로 공개되어 있어 사용자가 원하는 기능을 추할 수 있고 다양한 플랫폼에 설치하여 사용이 가능하여 재배포가 가능
- UNIX와 완벽하게 호환
- 대부분의 특징이 UNIX와 동일
MacOS의 개요 및 특징
- 1980년대 애플사가 UNIX를 기반으로 개발한 운영체제
- 애플사에서 생산하는 제품에서만 사용 가능
- 드라이버 설치 및 install / uninstall 과정이 단순
저장장치 관리의 개요
저장장치 계층 구조의 특징
- 주기억장치는 각기 자신의 주소를 가지는 워드 또는 바이트들로 구성되어 주소를 이용하여 접근
- 보조기억장치에 있는 프로그램이나 데이터는 CPU가 직접 액세스 할 수 없음
- 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스
기억장치의 관리 전략의 개요
- 3치 : Fetch(반입), 배치(Placement), 재배치(Replacement) 전략
반입(Fetch) 전략
- 보조기억장치에 보관중인 데이터를 언제 주기억장치에 적재할 것인지를 결정하는 전략
- 요구 반입 : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
- 예상 반입 : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재
배치(Placement) 전략
- 새로 반입되는 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
- 최초 적합(First Fit) : 배치가 가능한 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치
- 최적 적합(Best Fit) : 배치가 가능한 크기의 빈 영역 중에서 단편화를 가장 적게 남기는 분할 영역에 배치
- 최악 적합(Worst Fit) : 배치가 가능한 크기의 빈 영역중에서 단편화를 가장 많이 남기는 분할 영역에 배치
- 단편화
-> 내부 단편화 : 배치 후 남은 공간
-> 외부 단편화 : 배치를 못해 빈 공간으로 남아있는 공간
재배치(Replacement) 전략
- 주기억장치의 모든 영역이 이미 사용중인사용 중인 상태에서 새로운 프로그램이나 데이터가 배치하려고 할 때, 이미 사용 중인 영역에서 어느 영역을 교체할 것인지를 결정하는 전략
- FIFO, OPT, LRU, LFU, NUR, SCR 등
주기억장치 할당 기법
주기억장치 할당의 개념
- 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용
- 연속 할당 기법
-> 프로그램을 주 기억장치에 연속으로 할당하는 기법
-> 단일 분할 할당 기법 : 오버레이, 스와핑
-> 다중 분할 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법
- 분산 할당 기법
-> 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법
-> 페이징 기법, 세그먼테이션 기법
단일 분할 할당 기법
- 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 오버레이 기법
-> 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
-> 보조기억장치에 저장된 하나의 프로그램을 여러개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램을 실행
- 스와핑 기법
-> 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법
다중 분할 할당 기법
- 고정 분할 할당 기법 : 프로그램에 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비 중인 프로그램을 각 영역에서 할당하여 수행하는 기법
- 가변 분할 할당 기법 : 미리 주기억장치에 분할해 놓는 것이 아닌 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할
실기 정리
'2020(개정) 이후 정보처리기사 > 11장 : 응용 SW 기초 기술 활용' 카테고리의 다른 글
2021 정보처리기사 실기 - 11. 응용 SW 기초 기술 활용(5) (0) | 2021.10.09 |
---|---|
2021 정보처리기사 실기 - 11. 응용 SW 기초 기술 활용(4) (0) | 2021.10.09 |
2021 정보처리기사 실기 - 11. 응용 SW 기초 기술 활용(3) (0) | 2021.10.09 |
2021 정보처리기사 실기 - 11. 응용 SW 기초 기술 활용(2) (0) | 2021.10.09 |