운영체제의 개념
운영체제(OS: Operating System)의 정의
컴퓨터 하드웨어와 일반 컴퓨터 사용자 또는 응용 프로그램 중간에 위치하여 보다 쉽고 간편하게 컴퓨터 시스템을 이용할 수 있도록 제어하는 시스템 소프트웨어
운영체제의 목적
반환 시간 단축, 사용 가능도 향상, 처리 능력 향상, 신뢰도 향상
- 반환 시간(Turn Around Time): 작업을 제시하고 결과를 받을 때까지의 경과 시간
- 사용 가능도(Availability): 필요할 때 즉시 사용 가능한 정도
- 처리 능력(Throughout): 일정 시간 내에 시스템이 처리하는 일의 양
- 신뢰도(Reliability): 주어진 문제를 정확하게 해결하는 정도
💡 외우기
운영체제의 목적은 반·사·처·신
운영체제의 기능
- 사용자와 컴퓨터 간의 인터페이스 제공
- 시스템의 효율적인 운영 및 관리
- 자원 스케줄링 및 주변장치 관리
- 사용자 간의 데이터 호환
- 각종 하드웨어와 네트워크 관리
- 하드웨어의 메모리 관리 및 입출력 보조
- 데이터 공유 및 관리
- 초기 설정 기능 및 이식성 기능
- 시스템의 오류 검사 및 복구
운영체제의 종류
수행할 수 있는 작업 수에 따라 구분
종류 | 설명 | OS |
단일 작업 처리 시스템 (Single Tasking System) |
컴퓨터 시스템을 한 개의 작업이 독점하여 사용하는 방식 | DOS |
다중 작업 처리 시스템 (Multi-Tasking System) |
여러 개의 프로그램을 열어두고 다양한 작업을 동시에 진행하는 방식 | Windows, UNIX, LINUX |
운영체제의 구성
제어 프로그램(Control Program)
- 감시 프로그램(Supervisor Program): 프로그램 실행과 시스템 작동 상태를 감시, 감독하는 프로그램
- 작업 제어 프로그램(Job Control Program): 작업이 정상적으로 처리될 수 있도록 작업의 스케줄과 시스템 자원 할당 등을 관리하는 프로그램
- 자료(데이터) 관리 프로그램(Data Management Program): 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리하는 프로그램
- 주기억장치와 보조기억장치 사이 자료 전송
- 파일의 조작 및 처리
- 입출력 자료와 프로그램 간의 논리적 연결
💡 외우기
운영체제의 제어 프로그램은 감·작·데 🍊
처리 프로그램(Processing Program)
- 언어 번역 프로그램(Language Translate Program): 원시 프로그램(Source Program)을 기계어 형태의 목적 프로그램(Object Program)으로 번역하는 프로그램
- 어셈블러(Assembler): 어셈블리어로 작성된 원시 프로그램을 기계어로 된 목적 프로그램으로 어셈블하는 프로그램
- 컴파일러(Compiler): 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후 링킹 작업을 통해 컴퓨터에서 실행 가능한 프로그램을 생성
- 전체를 번역하여 번역 속도가 느리지만 실행속도는 빠름
- FORTRAN, COBOL, PASCAL, C, C++, PL/1 등
- 인터프리터(Interpreter): 고급 언어나 코드화된 중간 언어를 입력받아 목적 프로그램 생성 없이 직접 기계어를 생성, 실행하는 프로그램
- 행, 줄을 기준으로 번역하여 번역 속도는 빠르지만 실행속도는 느림
- BASIC, SNOBOL, LISP, APL 등
- 서비스 프로그램(Service Program): 사용자의 편의를 위해 시스템 제공자가 미리 작성하여 사용자에게 제공해 주는 프로그램(사용 빈도가 높음)
- 링커(Linker), 연결 편집기(Linkage Editor): 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램(로드 모듈) 등을 연결하여 실행 가능한 로드 모듈을 만드는 프로그램
- 정렬/합병 프로그램(Sort/Merge Program): 데이터를 일정한 기준으로 정렬하거나 정렬된 두 개 이상의 파일을 하나로 합병하는 프로그램
- 라이브러리안(Librarian): 프로그램 라이브러리를 유지, 관리하는 프로그램
- 유틸리티 프로그램(Utility Program): 텍스트 에디터, 디버거 등 사용자의 편의를 위한 프로그램
- 로더(Loader, Module Loader): 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 프로그램
- 할당(Allocagtion): 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨 놓을 기억 공간을 확보하는 기능
- 재배치(Relocation): 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치하는 기능
- 적재(Loading): 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능
- 할당 -> 링킹, 연결 -> 재배치 -> 적재
- 문제 프로그램(Problem Program): 특정 업무 및 문제 해결을 위해 사용자가 작성한 프로그램
운영체제의 운용 방식
일괄 처리 시스템(Batch Processing System)
- 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식
- 컴퓨터 시스템을 효율적으로 사용할 수 있고 계산 및 결산 업무에 사용
다중 프로그래밍 시스템(Multi-Programming System)
- 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
- 하나의 주기억장치에 두 개 이상의 프로그램을 기억시켜 놓고 하나의 CPU와 대화하면서 동시에 처리(CPU의 사용률과 처리량 증가)
시분할 시스템(Time Sharing System)
- 사용자가 일정한 시간 간격(Time Slice) 동안 CPU를 사용함으로써 단독으로 CPU를 사용하는 것과 같은 효과를 가지는 시스템으로 라운드 로빈(Round Robin) 방식이라고도 함
- 한 시스템을 여러 명의 사용자가 공유하여 동시에 작업을 수행하기 때문에 효율은 좋으나 반응 속도가 느림
- 각 작업에 대한 응답 시간을 최소한으로 줄이는 것이 목적
다중 처리 시스템(Multi-Processing System)
- 컴퓨터 한 대에 두 개 이상의 CPU를 설치하여 병렬처리 하는 것, 한 시스템에서 여러 개의 처리 과정을 동시에 수행
- 하나의 CPU가 고장 나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 신뢰성과 안정성이 높음
- 여러 개의 프로그램을 동시에 실행하여 CPU와 입출력장치를 최대한 활용
실시간 처리 시스템(Real Time Processing System)
- 데이터 발생 또는 데이트 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식
- 처리 시간 단축 및 비용 절감
- 시간에 제한을 두고 신속하게 수행되어야 하는 작업에 사용
분산 처리 시스템(Distributed Processing System)
- 지역적으로 분산된 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
- 각 컴퓨터 시스템은 고유의 운영 체제와 CPU, 메모리를 가지고 있음
운영체제 운용 기법의 발달 과정
단일 처리 -> 일괄 처리 시스템 -> 다중 프로그래밍 시스템 -> 시분할 시스템 -> 다중 처리 시스템 -> 실시간 처리 시스템 -> 범용 시스템 -> 분산 처리 시스템
💡 외우기
- 운영체제 운용 기법의 발달 과정은 단·일·프·시·처·실·범·분
- 다중 프로그래밍 -> 1개의 CPU, 다중 처리 -> 여러 개의 CPU
프로세스 관리 및 스케줄링
프로세스의 정의
프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 즉 실행 중인 프로그램을 의미
작업(Job) 또는 태스크(Task)라고도 불림
- 실 기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체
- 운영체제가 관리하는 실행 단위
- 실행 중인 프로그램
프로세스 상태 전이
프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
- 제출(Submit): 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수(Hold): 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
- 준비(Ready): 프로세스가 CPU를 할당받기 위해 준비상태 큐에 실행을 준비하는 상태(CPU를 할당받기만 하면 바로 실행 가능)
- 실행(Run): 준비상태 큐에 있는 프로세스가 CPU를 할당받아 실행되는 상태
- 대기(Wait), 보류, 블록(Block): 프로세스에 입출력 처리가 필요하면 현재 프로세스가 중단되고 입출력 처리가 완료될 때까지 대기하고 있는 상태
- 종료(Terminated, Exit): 프로세서의 실행이 끝나고 프로세스 할당이 해제된 상태
- 디스패치(Dispatch): 준비 상태에서 대기하고 있는 프로세스 중 우선순위가 가장 높은 프로세스가 CPU를 할당받아 실행 상태로 전이되는 과정
- 입출력 종료 깨움(Wake Up): 입출력이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
스케줄링(Scheduling)
프로세스가 실행될 때 필요한 시스템의 여러 자원을 프로세스에 할당하는 작업을 의미(프로세스를 생성, 실행, 중단, 소멸)
이를 수행하는 것을 스케줄러(Scheduler)라고 함
목적
- 모든 프로세스에 공정하게 할당
- 단위 시간당 프로세스를 처리하는 비율 증가
- 응답 시간 및 반환 시간 최소화
- 경과 시간의 예측이 가능
종류
- 비선점(Non-preemptive) 스케줄링
하나의 프로세스가 이미 다른 프로세스에 할당된 CPU를 강제로 빼앗아 사용할 수 없는 스케줄링 기법- FCFS = FIFO: 준비상태 큐에 도착한 순서대로 CPU를 할당하는 기법
- SJF(Shortest Job First): 준비상태 큐에서 기다리고 있는 프로세스 중 실행 시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
- HRN: SJF를 보완하기 위함, 대기 시간과 서비스(실행) 시간을 이용한 기법
- 우선순위: 준비상태 큐에서 기다리는 프로세스마다 우선순위를 부여하여 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
- 선점(Preemptive) 스케줄링
하나의 프로세스가 이미 다른 프로세스에 할당된 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- SRT(Shortest Remaining Time): 현재 실행 중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 짧은 실행 시간의 프로세스에게 CPU를 할당하는 기법
- 라운드 로빈(RR: Round Robin): 규정 시간 또는 시간 조각(Slice)을 미리 정의하여, 준비상태 큐에서 정의된 시간만큼 각 프로세스에 CPU를 제공하는 시분할 시스템에 적절한 기법
- 다단계 큐: 프로세스를 특정 그룹으로 분류할 수 있을 경우, 그룹마다 준비상태 큐를 사용하는 기법
- 다단계 피드백 큐: 준비상태 큐에 들어간 프로세스가 다른 그룹의 준비상태 큐로 이동할 수 없는 다단계 큐 기법에서 이동할 수 있도록 개선한 기법
교착 상태(Dead Lock)
다중 프로그래밍 상에서 두 개의 프로세스가 실행 중에 있을 때 점유하고 있는 자원을 다른 프로세스가 요구하여 두 프로세스 모두 실행할 수 없게 되는 현상 (impossible for any of the processes to proceed)
교착 상태 발생의 필요 충분 조건
- 상호 배체(Mutual Exclusion): 한 번에 한 개의 프로세스만 공유 자원을 사용할 수 있어야 함
- 점유와 대기(Hold and Wait): 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
- 비선점(Non-preemptive): 다른 프로세스가 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
- 환형 대기, 순환 대기(Circular Wait): 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
기억장치 관리 전략
보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 주기억장치의 공간을 효율적으로 사용하기 위한 것
반입(Fetch) 전략
보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정하는 전략
- 요구 반입(Demand Fetch): 프로그램이나 데이터 참조를 요구할 때 적재하는 방법
- 예상 반입(Anticipatory Fetch): 프로그램이나 데이터의 참조를 미리 예상하여 적재하는 방법
배치(Placement) 전략
프로그램이나 데이터를 주기억장치 어디에 위치시킬 것인지 결정하는 전략
- 최초 적합(First Fit): 첫 번째 분할 영역에 배치시키는 방법
- 최적 적합(Best Fit): 단편화(빈 기억공간)를 가장 작게 남기는 분할 영역에 배치시키는 방법
- 최악 적합(Worst Fit): 단편화(빈 기억공간)를 가장 많이 남기는 분할 영역에 배치시키는 방법
페이지 교체(Page Replacement, 페이지 대체) 전략
페이지 부재(Page Fault)가 발생했을 때 주기억장치의 모든 페이지 프레임이 사용 중이면 어떤 페이지 프레임을 선택하여 교체할지 결정하는 기법
- OPT(OPTimal replacement, 최적 교체): 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
- FIFO(First in First Out): 가장 오래된(Oldest) 페이지를 교체하는 기법
- LRU(Least Recently Used): 가장 오래 참조되지 않은 페이지를 교체하는 기법
- MRU(Most Recently Used), MFU(Most Frequently Used): 사용 빈도가 가장 많은 페이지를 교체하는 기법
- LFU(Least Frequently Used): 사용 빈도가 가장 적은 페이지를 교체하는 기법
- NUR(Not Used Recently): 최근에 사용하지 않은 페이지를 교체하는 기법
'자격증' 카테고리의 다른 글
정보처리기능사 - 11. WINDOWS(1/2) (0) | 2025.03.19 |
---|---|
정보처리기능사 - 10. DOS (0) | 2025.03.18 |
정보처리기능사 - 8. 스프레드시트와 프레젠테이션 (0) | 2025.03.16 |
정보처리기능사 - 7. SQL 활용 (0) | 2025.03.16 |
정보처리기능사 - 6. 데이터베이스 활용 (0) | 2025.03.16 |