운영체제란?
하드웨어와 응용 프로그램 사이에 위치해서 유저들이 컴퓨터 시스템을 더 쉽고 간편하기 이용할 수 있도록 제어하는 System Software의 일종
(시스템 소프트웨어를 대표함. 시스템 소프트웨어랑 동일시하는 경향이 있음.)
운영체제 사용 목적
- 처리 능력(Throughput: 일정 시간 내에 시스템이 처리하는 일의 양) 향상
- 사용 가능도(Availability: 시스템을 사용해야할 때 즉시 사용 가능한 정도) 향상
- 신뢰도(Reliability: 주어진 문제를 정확하게 해결하는 정도) 향상
- 반환 시간(Turn Around Time: 시스템에 작업을 제시하고 결과를 받을 때까지 걸리는 시간) 단축
->OS 평가 기준
운영체제 기능
- 사용자-컴퓨터 간의 인터페이스(Interface: 서로 다른 두 시스템 또는 사용자와 컴퓨터를 소프트웨어로 이어주는 부분이나 장치) 제공
- 시스템 효율적으로 운영/관리
- 자원(CPU, 메모리...), 스케줄링(어떤 자원을 누가 언제 어떤 방식으로 사용할지 결정해 주는 것), 주변장치 관리
- 사용자 간의 데이터 호환
- 하드웨어, 네트워크 관리
- 데이터 공유/관리
- 시스템 이식성(호환성) 향상
- 시스템 오류 검사/복구
운영체제 종류
Single Tasking System(단일 작업 처리 시스템)-컴퓨터 시스템을 한 개의 작업이 독점해서 사용하는 방식
ex) DOS
Multi Tasking System(다중 작업 처리 시스템)-프로그램 여러 개 열어두고 다양한 작업을 동시에 진행하는 방식
ex) Windows 10, UNIX, LINUX
운영체제 세부 구조
- Micro-program: ROM/PROM에 영구적으로 기록되는 프로그램. 보통 Firmware를 말함.
- Machine Language: 실행할 명령, 데이터, 기억 장소 주소 등을 포함. 하드웨어를 직접 실행시킬 수 있는 형태로 구성. 모든 하드웨어를 제어하기 위한 다양한 비트 형식의 명령어 존재.
- Kernel(제어 프로그램): 하드웨어를 제어하는 프로그램. 메모리, CPU, 단말기, 프린터 등 시스템의 자원 활용도를 높이기 위해 스케줄링과 자료 관리를 하는 핵심 요소
- Shell(명령어 해석기): 사용자의 명령을 받아 시스템 기능을 수행하는 명령 해석기. 사용자와 시스템 간의 인터페이스 담당
운영체제를 구성하는 프로그램
Control Program(제어 프로그램)
- Supervisor Program(감시 프로그램): 각종 프로그램 실행/시스템 전체의 작동 상태를 감시, 감독
- Job Control Program(작업 제어 프로그램): 어떤 업무를 처리하고 다른 업무로의 이행을 자동으로 수행하기 위한 준비 & 그 처리의 완료를 담당
- Data Management Program(자료 관리 프로그램): 메인 메모리와 세컨더리 메모리 사이의 자료 전송, 파일의 조작/처리, 입출력 자료와 프로그램 간의 논리적 연결 등 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리
Processing Program(처리 프로그램)
- Language Translate Program(언어 번역 프로그램): 원시 프로그램(Source Program: 고급 언어나 어셈블리어로 작성되어 번역되기 전의 프로그램)을 기계어 형태의 목적 프로그램(Object Program)으로 번역하는 프로그램
Assembler | 어셈블리어->기계어 |
Compiler | 고급 언어로 작성된 프로그램 전체를 Object 프로그램으로 번역한 후 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성 -컴파일러 언어: FORTRAN, COBOL, PASCAL, C, C++, PL/1 ... |
Interpreter | 고급 언어나 코드화된 중간 언어를 입력받아 object 프로그램 생성 없이 직접 기계어를 생성, 실행해주는 프로그램 -인터프리터 언어: BASIC, SNOBOL, LISP, APL 등 |
컴파일러 | 인터프리터 | |
번역 단위 | 전체 | 행(줄) |
목적 프로그램 | 생성함 | 생성 X |
실행 속도 | 빠름 | 느림 |
번역 속도 | 느림 | 빠름 |
- Service Program(서비스 프로그램): 사용자의 편리를 위해 시스템 제공자가 미리 작성하여 사용자에게 제공해주는 것. 사용 빈도가 높은 프로그램 -> 사용자 시간&노력 경감, 업무 처리 능률 향상
- 링커(Linker), 연결 편집기(Linkage Editor): 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램(로드 모듈) 등을 연결하여 실행 가능한 로드 모듈을 만드는 프로그램
- 정렬/합병 프로그램(Sort/Merge Program): 데이터를 일정한 기중으로 정렬하거나 정렬된 두 개 이상의 파일을 하나로 합치를 프로그램
- Librairan: 프로그램의 라이브러리(Library: 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 Class나 Function으로 만들어 진 것 )를 유지, 관리하는 프로그램
- Utility Program: 사용자의 편의를 도모하기 위한 프로그램. 텍스트 에디터, 디버거 등
- Loader, Module Loader
- 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 보조기억장치->주기억장치에 적재하는 프로그램
- 기능
- 할당(Allocation): 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보
- 연결(Linking): 부프로그램 호출 시 그 부프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능
- 재배치(Relocation): 디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능
- 적재(Loading): 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능
- Problem Program(문제 프로그램): 특정 업무/문제를 처리하기 위해 사용자가 작성한 프로그램
blog.gaerae.com/2016/11/what-is-library-and-framework-and-architecture-and-platform.html