[운영체제] 운영체제의 개요

[운영체제] 운영체제의 개요


우리가 일반적으로 사용하고 있는 Unix, linux, windows등과 같은 운영체제를 공부하는 학문

운영체제 정의

운영체제 : 명령어 해석기 + 제어 프로그램 + 기계어 + 마이크로 프로그램
  • 마이크로 프로그램
    • 하드웨어의 기본 동작을 제어하는 작은 명령을 마이크로 명령이라하며, 이 마이크로 명령의 조합으로 만들어진 프로그램
    • ex) 동작센서 등
  • 기계어
    • 마이크로 프로그램을 체계적으로 동작시키기 위한 명령어 형식으로, 저급언어인 어셈블리어와 시스템 프로그래밍 언어
    • ex) C 언어
  • 제어 프로그램
    • 컴퓨터의 전반적인 동작을 제어할 수 있는 프로그램으로 CPU 관리 프로그램, 메모리 관리 프로그램 등으로 명령어 해석기인 Shell에 의해서 동작된다.
    • 제어 프로그램 중에 항상 실행중인 것은 커널(Kernel)
  • 명령어 해석기
    • 사용자에 의해 명령이 입력되면 명령을 해석하여 제어 프로그램을 동작시키는 프로그램
  • 유틸리티
    • 운영체제의 서비스 프로그램(Service Program) 중 사용자의 편의를 도모하기 위한 프로그램
    • ex) 텍스트 에디터, 디버거, 메모장, 탐색기 등 
    • 제어프로그램 중 일부 프로그램을 사용자가 사용할 수 있도록 운영체제가 공개한 부분 프로그램 또는 함수를 라이브러리라고 한다.
  • 응용 프로그램
    • 컴퓨터 사용의 편이성과 작업의 효율성을 위해 개발된 프로그램이나 워드프로세서, 엑셀, DBMS, 게임 등을 말한다.

컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램
사용자와 하드웨어간의 전반적인 상호작용을 하면서 컴퓨터가 실행되는 동안 항상 수행되는 프로그램


운영체제의 역사

수작업 -> 단일 프로그래밍 -> 다중 프로그래밍 & 시분할 -> 모바일 OS & 실시간 시스템


단일 프로그래밍 : 메모리 상에서 한번의 한개의 프로그램만 사용 가능
다중 프로그래밍 : 메모리 상에서 여러개의 프로그램이 사용 가능
ex) 녹화 프로그램 + 한글 프로그램을 동시에 실행
시분할 :  여러개의 프로그램이 동시에 실행되고 있을 때, 적절한 시간을 쪼개서 분해 함
사용자가 느끼기에는 동시에 실행됨
ex) 0.001초는 A프로그램 실행 , 0.001초는 B프로그래밍 실행
실시간 시스템 : 어떤 작업에 특화된 굉장히 빠른 운영체제


운영체제의 목적

1. 사용자가 컴퓨터를 편리하게 사용하는 것 (사용자 측면)
2. 컴퓨터 하드웨어가 효율적으로 사용되는 것 (컴퓨터 하드웨어 측면)
컴퓨터를 효율적이면서 공정하게 운영할 수 있도록 요청에 따라 적절한 자원을 할당해주며 사용자의 입/출력을 제어합니다.

  • User : 어떤한 명령을 넣고, 자신이 필요한 작업을 요청, User가 운영 프로그램을 실행
  • Application : 예를 들어서 한글이라는 운영프로그램을 시작해서, 표나 차트와 같은 여러가지를 사용
  • Operation System : OS(운영체제)를 거침
  • Hardware : 하드웨어상에서 처리 후 OS-> Application -> User에게 보여줌


운영체제의 관리 계층 구조


  • 파일 관리 계층
    • 파일의 생성과 소멸, 파일의 열기와 닫기, 파일의 유지 및 관리를 담당한다.
  • 주변 장치 관리 계층
    • 주변장치의 상태 파악과 입출력 장치의 스케줄링을 담당한다.
    • ex) 프린터 
  • 프로세스 관리 계층
    • 프로세스의 생성, 제거, 메시지전달, 시작과 정지 등의 작업을 담당한다.
  • 기억장치 관리 계층
    • 메모리의 할당 및 회수 기능을 담당한다.
  • 프로세서 관리 계층
    • 동기화 및 프로세서 스케줄링 담당한다.
    • 가장 중요!!!




운영체제 시스템의 발전

출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?