■ 운영체제 역할, 특징, 기능 (암기x 이해o)
(1) 사용자와 컴퓨터간의 인터페이스를 제공하는 소프트웨어 (응용 프로그램x)
(2) 자원의 효율적인 스케줄링 (프로세서, 기억장치, 주변장치, 파일 관리)
(3) 데이터 공유 및 주변 장치 관리
(4) 입/출력 장치와 사용자프로그램[응용프로그램]을 제어
(5) 오류 검사 및 복구 기능
* 컴퓨터 시스템의 성능을 최적화 하기 위해 사용되는 운영체제의 기능 |
(1) 초기 설정기능 : 컴퓨터를 초기화시켜 작업(JOB)을 수행할 수 있는 상태로 유지시키는 역할 (2) 인터페이스 기능 (3) 이식성 기능 : 소프트웨어를 서로 다른 구성을 가진 컴퓨터나 오퍼레이팅 시스템에서 이용하기 위해 필요한 수정/변경의 편리성 (4) 시스템 보호 기능 : 시스템 사용 도중 발생하는 내부, 외부적인 오류로부터 시스템을 보호 |
■ 운영체제 목적, 평가 기준
1. 처리 능력(Throughput) 향상[증대] : 일정 시간 내에 시스템이 처리하는 일의 양 -> 단위 작업량 향상
2. 신뢰도(Reliability) 향상 : 시스템이 주어진 문제를 정확하게 해결하는 정도
3. 사용 가능도(Availability) 향상 : 시스템을 얼마나 빨리 사용할 수 있는가의 정도
4. 응답시간, 반환시간(Turn Around Time, 왕복소요시간) 감소[단축] : 컴퓨터에 작업을 지시하고 나서부터 결과를 받을 때까지의 경과 시간
■ 운영체제 종류
종류 | 특징 | |
개인용 OS (Single-User) |
MS-DOS | Windwos 이전에 Microsoft사가 개발한 운영체제 (CUI 환경) |
Windows | Mircrosoft사 대표적인 운영체제 (GUI환경) | |
MacOS | Apple사가 UNIX 기반으로 개발한 운영체제 | |
서버용 OS (Multi-User) |
Windows NT (Server) |
Microsoft사가 공개한 서버 운영체제 |
UNIX | AT & T 벨(Bell) 연구소, MIT, General Electirc이 공동 개발한 운영체제 (CLI, GUI환경) | |
Linux | UNIX와 호환 가능한 Kernel(운영체제 핵심 부분)임, 리누스 토발즈가 개발 (오픈 소스, CLI, GUI) |
|
* MS-DOS는 단일 작업 처리 시스템이고, 나머지는 다중 작업 처리 시스템이다. * 단일 작업 처리 시스템 (Single Tasking System) : 한 개의 작업이 컴퓨터 시스템을 독점하여 사용하는 방식 (ex) 인터넷 검색 중에 문서 작성을 하려면 인터넷 검색을 종료해야 한다. * 다중 작업 처리 시스템 (Multi Tasking System) : 여러 개의 작업을 컴퓨터 시스템이 동시에 진행하는 방식 (ex) 인터넷 검색과 문서 작성을 동시에 처리할 수 있다. |
■ 운영체제 기능적 분류
종류 | 특징 | |
제어 프로그램 | 감시 프로그램 (Supervisor) |
각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시/감독 하는 프로그램 |
작업 제어 프로그램 (Job Control) |
어떤 업무를 처리하고 다른 업무로의 이행을 자동적으로 수행하기 위한 준비 및 그 처리 완료를 담당하는 기능을 수행한다. 즉, 작업의 연속 처리를 위한 스케쥴링 및 시스템 자원 할당을 담당한다. |
|
데이터 관리 프로그램 (Data Management) |
주기억장치와 보조기억장치 사이의 자료 전송, 파일의 조작 및 처리, 입/출력 자료와 프로그램간의 논리적 연결 등 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리하는 프로그램. |
|
처리 프로그램 | 서비스 프로그램 (Service) |
효율성을 위해 사용 빈도가 높은 프로그램 |
문제 프로그램 (Problem) |
특정 업무 해결을 위해 사용자가 작성한 프로그램 | |
언어 번역 프로그램 (Language Translator) |
사용자가 작성한 코드를 기계가 이해할 수 있도록 번역해주는 프로그램 (ex) 어셈블러, 컴파일러, 인터프리터 |
■ 운영체제 세대별 발달 과정 (★)
* 여기서만 이상하게 표를 만들고나면 계속 고장이나서 글로만 정리함
(1세대) - 일괄처리
일괄 처리 시스템 (Batch Processing System)
: 가장 먼저 생겨난 방식으로, 유사한 성격의 작업을 모아서 한꺼번에 처리한다.
(2세대) - 다중처리
1. 다중 프로그래밍(Multi Programming)
: 한 대 컴퓨터로 여러 프로그램들을 실행할 수 있게되었고. 이로 인해 '처리량이 극대화' 되었다.
2. 시분할 시스템 (Time Sharing System)
: 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리해 줌으로써 각 사용자가 각자 독립된 컴퓨터를 사용하는 느낌을 주는 시스템. '응답시간이 최소화'되었다.
(시간 슬롯 할당, 시스템 공유 후 동시 작업)
3. 다중 처리 (Multi Processing) : 한 대의 컴퓨터에 중앙처리장치(CPU)가 2개 이상 설치, 여러 프로그램들 실행
* 다중 프로그램은 프로그램을 여러 개를 실행하는 거(Programming)에 중점, 다중 처리는 중앙처리장치가 2개 이상 설치된다는 것(Processing)에 중점
4. 실시간 시스템 (Real-Time System) : 데이터가 발생하는 즉시 처리하는 방식
(ex) 좌석 예약, 비행기 제어 시스템, 교통 제어
(3세대) - 다중모드(=범용)
다중 모드(Mode) 시스템
=> 1, 2세대 혼합 시스템
(4세대) - 분산처리
분산 처리 시스템 (Distributed Processing System)
: 지역적으로 분산된 컴퓨터들을 연결하여 사용하는 방식 (분산 처리)
■ 소프트웨어 분류
종류 | 특징 |
시스템 소프트웨어 (System Software) |
사용자가 손쉽게 컴퓨터를 쓸 수 있게 도와주는 동시에 컴퓨터 시스템을 효율적으로 운영해주는 기능을 갖춘 프로그램 집단. (운영체제보다 좀 더 큰 개념 혹은 운영체제와 같은 의미로 사용) |
응용 소프트웨어 (Application Software) |
사용자가 컴퓨터를 사용하여 어떠한 일을 하려고 할 때 사용되는 모든 프로그램 (ex) OA용, 통신용, 그래픽, 멀티미디어 등 프로그램 |
유틸리티 소프트웨어 (Utility Software) |
컴퓨터를 분석, 구성, 최적화 또는 유지 관리하도록 설계된 시스템 소프트웨어 - 유틸리티 소프트웨어는 대부분 운영체제에 오랫동안 통합되어왔다. (ex) 디스크 조각모음, 화면 보호기, 바이러스 검사 소프트웨어, 압축/압축 해제 프로그램 |
■ 언어 번역
[과정]
1. 원시(Source) 프로그램 (사람이 코딩으로 만든 프로그램)을 번역(Compile)하여
목적(Object) 프로그램 생성
2. Link(연결) 하여 실행(Execute) 프로그램 생성
3. 주기억 장치에 Load(적재)
4. 실행(Execute)
즉,
컴파일 -> 링킹 -> 로딩 -> 실행이 된다.
* 원시 프로그램 : 사람이 코딩으로 만든 프로그램
* 목적 프로그램 : 원시 프로그램을 컴파일러를 이용해 기계어로 번역한 이진수로 이루어진 프로그램
* 링커(Linker), 연결 편집기(Linkage Editor) : 목적 프로그램 등을 연결하여 실행 가능한 로드 모듈(=실행 프로그램)을 만드는 프로그램. (여러 파일을 합쳐서 하나의 프로그램으로 만드는 것)
* 로더 (Loader) | |
목적 프로그램을 '주기억장치에 적재'하여 실행 가능하게 해주는 시스템 프로그램 | |
▼ 로더의 기능 (★) | |
할당 (Allocation) | 프로그램을 적재할 기억장치 내의 공간을 할당 (기억공간 확보) |
연결 (Link) | 필요할 경우 여러 목적 프로그램들과의 연결 |
재배치 (Relocation) | 할당된 기억장치에 맞게 실제 주소를 배치 |
적재 (Load) | 기억장치로 읽어 들임 |
■ 컴파일러, 인터프리터
[공통점]
고급언어(C, JAVA 등등)를 기계어로 번역해준다
[차이점]
1. 번역단위 : 컴파일러는 전체를 번역, 인터프리터는 줄 단위로 번역
2. 목적프로그램 생성 여부 : 컴파일러 (O), 인터프리터 (X)
3. 실행 : 컴파일러는 실행 프로그램을 실행, 인터프리터는 번역과 동시에 실행
4. 실행속도 : 컴파일러는 빠르다, 인터프리터는 느리다.
■ 용어 정리
용어 | 뜻 |
컴파일러 (Compiler, 번역기) |
특정 프로그래밍 언어로 쓰여진 문서를 컴퓨터가 이해할 수 있는 언어로 번역하는 프로그램 |
인터프리터 (Interpreter) |
고급언어나 중간언어(IL)를 목적 프로그램을 만들지 않고 직접 한 문장씩 번역하여 실행하는 프로그램 |
어셈블러 (Assembler) |
어셈블리어(저급 언어)로 작성된 프로그램을 기계어로 번역해주는 프로그램 |
크로스 컴파일러 (Cross Compiler) |
원시 프로그램을 컴파일러가, 수행되고 있는 컴퓨터의 기계어로 번역하는 것이 아니라, 다른 기종에 맞는 기계어로 번역하는 것 |
프리프로세서 (Preprocessor, 전처리기) |
메인 프로그램 실행 전에 먼저 처리하는 프로그램 |
모뎀 (Modem) |
컴퓨터 통신을 위해 디지털 신호 ↔ 아날로그 신호로 변/복조하는 장치 |
'자격증 및 시험 > 정보처리' 카테고리의 다른 글
[운영체제] 교착 상태, 기억장치 관리 전략 (1) | 2023.04.24 |
---|---|
[운영체제] 프로세스 스케줄링 (1) | 2023.04.21 |
[UNIX] 명령어 (0) | 2023.04.19 |
[UNIX] 개념 및 시스템 구조 (0) | 2023.04.18 |
[DOS] 디렉토리, 디스크 관련 명령 및 필터 명령어 (0) | 2023.04.17 |