ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [전산기초] 운영체제(OS: Operating System)
    비전공자 공부일기/:: Computer Science 2021. 7. 8. 22:13

    운영체제의 개념

    1. 운영체제의 정의

    컴퓨터 하드웨어와 일반 컴퓨터 사용자 또는 컴퓨터에서 실행되는 응용 프로그램의 중간에 위치하여 사용자들이 보다 쉽고 간편한게 컴퓨터 시스템을 이용할 수 있도록 제어하는 시스템 소프트웨어의 일종

     

    하드웨어-> 운영체제-> 유틸리티-> 응용 프로그램-> 사용자

     

    2. 운영체제의 목적

    처리 능력 향상, 사용 가능도 향상, 신로도 향상, 반환 시간 단축 등 (운영체제의 성능을 평가하는 기준들)

     

    - 처리 능력(Throughput) : 일정시간 내에 시스템이 처리하는 일의 양

    - 반환 시간(Turn Around Time) : 시스템에 작업을 제시하고 나서부터 결과를 받을 때까지의 경과 시간

    - 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

    - 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

     

    3. 운영체제의 기능

    - 사용자와 컴퓨터 간의 인터페이스 제공

    - 시스템의 효율적인 운영 및 관리

    - 자원* 스케줄링 및 주변장치 관리

    - 사용자 간의 데이터 호환

    - 각종 하드웨어와 네트워크 관리

    - 데이터 공유 및 관리

    - 초기 설정 및 이식성 기능

    - 시스템의 오류 검사 및 복구

     

    * 자원: 시스템에서 사용할 수 있는 CPU, 주기억장치, 보조기억장치, 프린터, 파일 및 정보 등을 의미

     

    4. 운영체제의 종류

    Windows, UNIX, LINUX, MS-DOS 등이 있으며,

    하나의 컴퓨터 시스템에서 수행할 수 있는 작업 수에 따라 다음과 같이 구분

     

    1) 단일 작업 처리 시스템(Single Tasking System)

    컴퓨터 시스템을 한 개의 작업이 독점하여 사용하는 방식

     

    2) 다중 작업 처리 시스템(Multi-Tasking System)

    여러 개의 프로그램을 열어두고 다양한 작업을 동시에 진행하는 방식

    예를 들어 음악을 들으며 그림판을 동시 실행 가능하고, 필요할 때마다 바로바로 전환하여 사용

     

     

    운영체제의 구성

    운영체제는 시스템 소프트웨어를 대표하는 프로그램이지만,

    특정 운영체제는 시스템 소프트웨어의 많은 기능을 포함하는 것도 있으므로 두 개를 같은 의미로 쓰기도 함

     

    1. 운영체제의 구성

    제어 프로그램(Control Program)

    감시 프로그램
    (Supervisor Program)
    각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시-감독하는 프로그램
    작업 제어 프로그램
    (Job Control Program)
    어떤 업무를 처리하고 다른 업무로의 이행을 자동으로 수행하기 위한 준비 및 처리에 대한 완료를 담당하는 프로그램
    자료 관리 프로그램
    (Data Management Program)
    시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리하는 프로그램(주-보조기억장치 사이 자료전송, 파일의 조작 및 처리, 입출력 자료와 프로그램 간의 논리적 연결 등)

     

    2. 언어 번역 프로그램

    어셈블러(Assembler) - 어셈블리어로 작성된 원시 프로그램을 기계어로 된 목적 프로그램으로 어셈블해줌
    컴파일러(Compiler) - 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후,
      링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램 생성
    - 컴파일러 언어: FORTRAN, COBOL, PASCAL, C, C++, PL/1 등
    인터프리터(Interpreter) - 고급 언어나 코드화된 중간 언어를 입력받아 목적 프로그램 생성 없이
      직접 기계어를 생성, 실행해주는 프로그램

     

    컴파일러와 인터프리터 모두 결과적으로 어셈블리어를 생성하는 역할을 한다.

    이 어셈블리어를 다시 0010001의 Machine Language(기계어)로 만들어주는 것이 어셈블러!

     

    컴파일러와 인터프리트의 비교

    구분 컴파일러 인터프리터
    번역 단위 전체 행(줄) line by line
    목적 프로그램 생성 생성 X
    실행 속도 빠름 느림
    번역 속도 느림 빠름

     

    +) 크로스 컴파일러

    컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다.

    즉, 서로 다른 머신 상에서도 호환되도록 어셈블리 코드를 만들어주는 컴파일러!

     

    3. 서비스 프로그램

    링커(Linker) &
    연결 편집기(Linkage Editor)
    언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램(로드 모듈) 등을 연결하여 실행 가능한 로드 모듈을 만드는 프로그램
    정렬/합병 프로그램
    (Sort/Merge Program)
    데이터를 일정한 기준으로 정렬하거나 정렬된 두 개 이상의 파일을 하나로 합치는 프로그램
    라이브러리안 (Librarian) 프로그램의 라이브러리를 유지-관리하는 프로그램
    유틸리티 프로그램
    (Utility Program)
    사용자의 편의를 도모하기 위한 프로그램 (텍스트 에디터, 디버거 등)
    로더
    (Loader = Module Loader)
    컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 프로그램

    * 로더의 기능
    - 할당(Allocation)
    :
    실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능

    - 연결(Linking)
    :
    부프로그램 호출 시 그 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능

    - 재배치(Relocation)
    :
    디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능

    - 적재(Loading)
    :
    실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능

     

     

    운영체제의 운용 방식

    작업을 수행하는 방식에 따라 아래와 같이 나눌 수 있음

     

    1. 일괄 처리 시스템(Batch processing System)

    초기의 컴퓨터 시스템에서 사용된 형태

    일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식

     

    - 컴퓨터 시스템을 효율적으로 사용

    - 급여 계산, 지불 계산, 연말 결산 등의 업무에 사용

     

    2. 다중 프로그래밍 시스템(Multi-Programming System)

    하나의 CPU와 주기억장치로 여러 개의 프로그램을 동시에 처리

     

    - 1개의 주기억장치에 두 개 이상의 프로그램을 기억시켜 놓고, 1개의 CPU와 대화하면서 동시에 처리

    - CPU의 사용률과 처리량 증가

     

     

    3. 시분할 시스템(Time Sharing System) = 라운드 로빈 (Round Robin)

    단말장치 사용자가 일정한 시간 간격(Time Slice) 동안 CPU를 사용함으로써

    단독으로 CPU를 사용하는 것과 같은 효과를 가지는 시스템

     

    - 한 시스템을 여러 명의 사용자가 공유하여 동시에 작업 수행

    - 시스템의 전체 효율은 좋아지나 개인별 사용자 입장에서는 반응 속도가 느려질 수 있음

     

     

    4. 다중 처리 시스템(Multi-Processing System)

    컴퓨터 한 대에 두 개 이상의 CPU를 설치하여 병렬 처리하는 것

    한 시스템에서 여러 개의 처리 과정을 동시에 수행하는 것

     

    - 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있음

      --> 시스템의 신뢰성과 안정성 높음

    - 여러 개의 프로그램을 동시에 실행해서 CPU와 입-출력장치를 최대한 활용

     

     

    5. 실시간 처리 시스템(Real Time Processing System)

    데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과 산출

     

    - 처리 시간이 단축되고, 처리 비용이 절감

    - 시간에 제한을 두고 신속하게 수행되어야 하는 작업에 사용

     

    6. 분산 처리 시스템(Distributed Processing System)

    지역적으로 분산된 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리

     

    - 이 때, 각 단말장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 갖고 있음

    댓글

coding wanee