본문 바로가기
STUDY NOTE/CS Basic

[OS] 운영체제 복습

by 200% 2021. 3. 29.

운영체제란?

하드웨어와 응용 프로그램 사이에 위치해서 유저들이 컴퓨터 시스템을 더 쉽고 간편하기 이용할 수 있도록 제어하는 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

 

[개발용어] 라이브러리, 프레임워크, 아키텍처, 플래폼이란?

개발 입문자나 혹은 현업 개발자이지만 정의를 내리기 곤란한 라이브러리, 프레임워크, 아키텍처, 플랫폼에 대한 개인적인 생각을 정리했습니다.

blog.gaerae.com