1장. 운영체제 개요
- 목차
1.운영체제의 개요
- 컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어
- 프로그램의 실행을 제어하는 소프트웨어 이다!(자원 할당, 스케줄링, 입출력 제어, 데이터 관리 등..)
운영체제 주요 기능(처리 내용 기준!)
- File Management- 입출력 및 데이터를 관리한다.
- Job Management- 자원 할당(Memoty, Cpu등..), Job스케줄링
=>Job(작업):Job이란 사용자가 컴퓨터에 요청한(부여한)일의 단위라고 볼수 있다. - Task Management-TASK의 처리 상태를 감시하고 효율적으로 처리한다.
=>Task(업무):컴퓨터의 처리 단위인 TASK로 분할하여서 JOB을 실행시킨다.
작업을 수행하는 기준
=>일괄, 다중 프로그래밍, 시분할 처리 , 다중 처리, 병행 처리 , 분산 처리 등으로 발전하였다.
이 작업 수행 기준은 뒤에 자세히 서술하도록 하겠습니다.
2.운영체제의 역할
- 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며 CPU,메모리와 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공해 준다.
3. 운영체제의 목적
- 편리성: 사용자가 프로그램을 개발하고 사용하는 데 있어서 좀 더 편리한 환경을 제공해준다.
- 효율성: 자원을 효과적으로 사용하기 위해 각 프로그램을 유기적으로 결합하여서 시스템 전체의 성능 향상=> 뒤에 성능을 향상시키는 방향으로 설계된다.
시스템 성능 평가 기준
- 처리 능력(Throughput): 시스템의 생산성을 나타내는 대표 지표로 단위 시간당 처리하는 작업량을 말한다. 이 처리 능력이 작을수록 성능이 좋다.
- 신뢰도 (Reliability):하드웨어(펌웨어), 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력을 말한다.
- 응답 시간(Turn around time):사용자가 시스템에 작업을 의뢰한 뒤에 반응을 얻을 때까지의 시간을 말한다.(시분할 방식 시스템과 온라인 시스템에서 사용하는 용어이며 일괄처리 시스템에서는 Turn Around Time)
- 사용가능도,가능도(Availability): 사용자가 일정 기간 동안 컴퓨터를 실제로 사용한 시간이다.
4. 운영체제의 기능
자원 관리 기능
- 프로세스 관리(프로세스를 주제로 프로세스의 상태와 변환 관련 기술과 제어 , 스레드, 병행 프로세스 , 교착 상태 , 프로세스 스케줄링의 기능
- 메모리 관리
- 보조기억장치 관리
- 장치 관리
- 파일 관리
- 기타 기능
등이 있다.
5. 운영체제의 발달
1. 운영체제 발달 요인
- 하드웨어의 비약적인 발달
- 주기억 공간의 대용량화
- 대용량, 고속의 자기 디스크가 출현: 가상기억 공간 개념
- 프로세서(CPU)의 처리 속도가 증가
- 컴퓨터 사용자의 서비스를 요구
- 시스템 운영자의 서비스를 요구
- 컴퓨터 프로그래밍 언어의 발전
2. 컴퓨터 출현 초기 (1940~50년대 초기)
- 사용자가 컴퓨터 하드웨어를 직접 조작
- 입력장치: 카드 리더
- 작업 실행을 위한 여러단계를 수작업으로 진행하기 때문에 시스템의 유휴 상태가 길어졌음
3.상주 모니터(Resident Moniter) 개념 출현
- 컴퓨터 조작원은 프로그래머의 요청에 따라서 작업을 진행시킴. 이에 따른 유휴 시간의 방지를 위하여 다른 작업으로 자동적으로 진행될 수 있도록 주기억 공간에 상주하는 프로그램의 필요성이 대두됨.
- 컴퓨터 프로그래밍 언어의 발전
4. 버퍼링과 스풀링 개념이 도입됨.
- 버퍼링(Buffering)
- 출현 이유 : 입출력 장치와 CPU간의 처리 속도 차이에서 발생하는 CPU의 대기(유휴) 시간을 최소화하기 위해서 필요하며, CPU의 효율적인 시간 관리를 지향함.
- 주기억 장치의 일부를 버퍼로 설정함.
- 실제 입출력은 블록(Block) 단위로 버퍼와 I/O 기기 사이에서 처리됨.
2.스풀링(SPOOLING)
- 출현 이유 : 시스템이 보유하고 있는 유한한 개수의 입출력 장치의 사용을 원할하게 하며, 입출력 장치의 사용을 원하는 사용자에 대한 지원을 용이하게 함.
- 자기 디스크의 일부를 [스풀] 영역으로 사용함
- 주기억 장치와 입출력 장치를 직접 연결하지 않고, 그 사이에 [스풀]을 위치시킴.
5. 다중 프로그래밍 개념의 도입
-> 왜 나왔을까?
- single user 시스템인 경우, 자원의 낭비가 심해진다.
- 특히, 저속의 입출력 장치와 고속의 CPU인 경우 , I/O 를 하는 동안에는 CPU가 쉬게(놀게?) 되는 문제점이 발생한다.
-> 방안
- 하나의 작업이 I/O를 하는 동안 , 다른 작업이 CPU를 사용(쓸)할 수 있도록 여러 개의 프로그램을 주기억 공간에다가 적재 시킴=> 이게 바로 다중 프로그래밍(Multiprogramming)이다.
- 여러 개의 프로그램을 적재할 수 있는 충분한 기억공간을 가진다.
- 입출력 작업을 독립적으로 수행할 수 있는 방안을 강구한다. (I/O 프로세서 또는 Channel개념 등..)
- 뒤에 나올 교착 상태(deadlock) 처리 방법이기도 하다
- 마찬가지로 뒤에 나올 인터럽트(Interrupt) 개념 도입등등...
6. 운영체제의 유형
운영체제 운영 기법
- 일괄 처리 시스템(Batch Processing System)
- 다중 프로그래밍 시스템(Multi-Programming System)
- 시분할 시스템(Time Sharing System)
- 다중 처리 시스템(Multi-Processing System)
- 실시간 처리 시스템(Real Time Processing System)
- 다중 모드 처리 시스템(Multi -Mode Processing System)
- 분산 처리 시스템(Distributed Processing System)
등이 있으며 이들은 작업 수행하는 방식에 따라 다르다.
발달과정은 일괄처리-> 다중프로그래밍,다중처리,시분할,실시간-> 다중 모드-> 분산처리시스템 순이다.
일괄처리 시스템
- 초기의 컴퓨터 시스템에서 사용된 형태, 한꺼번에 처리하는 방식이다.
- 컴퓨터 시스템을 효율적으로 사용할 수 있다.
- 급여 계산, 지불 계산, 연말 결산 등의 업무에서 사용
다중 프로그래밍
- 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식이다.
- 하나의 주기억 장치에 2개 이상의 프로그램을 기억시켜 놓고, 하나의 CPU와 대화하면서 동시에 처리함
시분할 시스템
- 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능함
- 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에, CPU의 전체 사용 시간을 작은 작업 시간량(Time Slice) 으로 나누어서 그 시간량 동안만 번갈아 가면서 CPU를 할당하여 각 작업을 처리함.
다중 처리 시스템
- 여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식이다.
- 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 시스템의 신뢰성과 안정성이 높다.
실시간 처리 시스템
- 데이터가 발생하는 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식이다.
- 우주선 운행, 레이더 추적기, 핵물리학 실험 및 데이터 수집 등등..시간에 제한을 두고 수행되어야 하는 작업에 사용되는 시스템이다.
다중 모드 처리
- 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식이다.
분산 처리 시스템
- 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여서 하나의 작업을 처리하는 방식
- 각 단말 장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있다.
7.운영체제의 기능
- 운영체제는 프로그램을 실행하는데 필요한 환경과 자원을 제공하고 관리하기 위한 크고 복잡한 시스템이다.
- 논리적으로 작은 모듈로 구성되며 각 부분은 명확하게 정의되어있다.
- 대부분의 시스템은 자원 관리와 프로그램을 위한 인터페이스 역할을 수행한다.
자원 관리 기능
- 대부분 메모리 , 프로세스 ,장치 ,파일 등의 시스템
- 구성 요소를 제공하며 이를 자원이라고 하며, 운영체제는 이런 자원을 관리하는 역할을 수행한다.
프로세스 관리
- 프로세스를 주제로 프로세스의 상태와 변환 관련 기술과 제어, 스레드 ,병행 프로세스 , 교착 상태, 프로세스 스케줄링의 기능
메모리 관리
- 현재 메모리의 어느 부분이 사용되고 , 누가 사용하는 지를 점검하는 기능이다.
- 기억 공간에 어떤 프로세스를 저장할 지 결정하는 기능
- 기억 공간을 할당하고 회수하는 방법을 결정하는 기능이다.
보조기억장치 관리
- 메인 메모리의 공간이 제한적이므로 컴퓨터 시스템은 보조기억장치를 이용해 메인 메모리의 내용을 저장한다.
- 디스크 관리를 위해 비어 있는 공간 관리, 저장 장소 할당, 디스크 스케줄링이 가능하다.
장치 관리
- 입출력 시스템을 관리하기 위해 임시 저장 시스템, 일반적인 장치 드라비어 인터페이스, 특정 하드웨어 장치를 위한 드라이버 기능등이 있다.
파일 관리
- 파일과 디렉터리의 생성과 제거, 보조기억장치에 있는 파일의 맵핑, 안전한(비휘발성) 저장 매체에 파일 저장하는 기능
기타 기능
- 시스템 보호, 네트워킹, 명령어 해석기와 시스템 관리 기능
8. 운영체제의 구성
커널(Kernel)
- OS의 핵심부분 (booting 후에 Memory에 상주한다.)
- 사용자 및 실행 프로그램들을 위해 빈번히 사용되는 기능을 담당한다.
- 주로 자원의 관리기능을 한다.
유틸리티 프로그램(Utility programs)
- 비상주 프로그램, 서비스 프로그램
- 주로 사용자 인터페이스 기능이다.
9.운영체제의 자원 관리
1장 운영체제를 정리해 보았다.
너무 많고 많아서 그동안 임시저장으로 했다가 드디어 올리는거같다. 2장,3장,4장까지 빠르게 올리는게 목표인데 그림이랑 사진이 너무 많아서 좀 많이 힘들거같다..
'운영체제' 카테고리의 다른 글
3장. 기억장치 관리(1) (0) | 2023.04.26 |
---|---|
2장. 프로세스 관리(3) (0) | 2023.04.26 |
2장.프로세스 관리(2) (0) | 2023.04.26 |
2장. 프로세스 관리(1), (어셈블러,링커,로더) (0) | 2023.04.24 |
0장. 컴퓨터시스템개요 (0) | 2023.04.24 |