[CS] 정보처리기능사 실기_01.운영체제 기초 활용
본 문서는 정보처리기능사 실기 시험 대비용 필기입니다
운영체제 기초 활용
운영체제의 개념
운영체제 (OS, Operating System)
- 운영체제의 정의
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 유저와 하드웨어간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종
- 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공
- 운영체제의 목적
- 처리능력(Throughput)
- 반환시간(Turn Around Time)
- 사용 가능도(Availability)
- 신뢰도(Reliability)
- 운영체제의 구성
- 제어 프로그램 (Control Program)
- 감시 프로그램(Supervisor Program)
- 작업 제어 프로그램(Job Control Program)
- 자료 관리 프로그램(Data Management Program)
- 처리 프로그램(Processing Program)
- 언어 번역 프로그램(Language Translate Program)
- 서비스 프로그램(Service Program)
- 문제 프로그램(Problem Program)
- 제어 프로그램 (Control Program)
- 운영체제의 종류
- Windows
- UNIX
- LINUX
- MacOS
- MS-DOS
- Android
- iOS
- 운영체제 운용 기법의 발달 과정
- 일괄 처리 시스템(Batch Processing System)
- 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식
- 다중 프로그래밍 시스템(Multi-Programming System)
- 하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
- 시분할 시스템(Time Sharing System)
- 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해 줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 주는 것 (=Round Robin)
- 다중 처리 시스템(Multi-Processing System)
- 여러 개의 CPU와 하나의 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
- 실시간 처리 시스템(Real Time Processing System)
- 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식
- 범용 시스템(General-Purpose System)
- 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식 (=다중 모드 처리 시스템)
- 분산 처리 시스템(Distributed Processing System)
- 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
- 일괄 처리 시스템(Batch Processing System)
Windows
컴퓨터 시스템의 하드웨어를 효율적으로 관리하고 유저에게는 더 편리한 컴퓨터 환경을 제공하기 위해 만들어진 개인용 컴퓨터 시스템의 운영체제
Windows의 특징
- 그래픽 사용자 인터페이스(GUI)
- 키보드로 명령어를 입력하지 않고, 아이콘이나 메뉴를 마우스로 선택하여 모든 작업을 수행하는 사용자 작업 환경
- 선점형 멀티태스킹(Preemptive Mulit-Tasking)
- 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제로 종료시키고, 모든 시스템 자원을 반환하는 멀티 태스킹 운영방식
- 32bit 또는 64bit 데이터 처리
- FAT32 파일 시스템
- 파일 시스템 : 보조기억장치에 저장되는 파일을 수정, 삭제, 추가, 검색하는 등의 관리 시스템
- File Allocation Table, FAT
- 플러그 앤 플레이(PnP; Plug & Play)
- 컴퓨터 시스템에 새로운 하드웨어를 장착하고 시스템을 가동시키면 자동으로 하드웨어를 인식하고 실행하는 기능
- OLE(Object Linking and Embedding)
- 다른 여러 응용프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능
- 255자의 긴 파일 이름
- VFAT(Virtual File Allocation Table)을 이용하여 최대 255자까지 지정 가능
- 향상된 네트워크 기능
- DOS와 호환
바로 가기 키(단축키)
키보드의 키를 조합하여 명령어 대신 특정 앱이나 명령을 빠르게 실행하는 기능
단축키 또는 Hot key라고도 한다
UNIX / LINUX
UNIX
- UNIX 개요 및 특징
- 1960년대 AT&T 벨 연구소, MIT, GE이 공동 개발한 운영체제
- 시분할 시스템을 위해 설계된 대화식 운영체제
- Open Source System
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다
- 크기가 작고 이해하기 쉽다
- Multi-User, Multi-Tasking
- 많은 네트워킹 기능을 제공하므로 네크워크 관리용 운영체제로 적합
- 계층적 트리 구조의 파일 시스템을 가짐
- 표준 입출력을 통해 명령어들이 파이프라인으로 연결됨
- UNIX 시스템의 구성
- 커널(Kernel)
- UNIX의 가장 핵심 부분
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당
- 프로세스(CPU 스케쥴링) 관리, 기억장치 관리, 파일 관리, 입출력 관리, 데이터 전송 및 변환 등 여러가지 기능 수행
- 쉘(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 명령을 해석하여 커널로 처리할 수 있도록 전달해주는 명령 인터프리터, 단말 장치를 통해 유저로부터 명령어를 입력받음
- 공용 Shell(Bourne Shell, C Shell, Korn Shell)이나 유저 자신이 만든 Shell을 사용할 수 있음
- 유틸리티 프로그램
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용
- DOS에서의 외부 명령어에 해당
- 유틸리티 프로그램에는 에디터(ex. vi, ed, emacs, pico, joe), 컴파일러, 인터프리터, 디버거 등이 있음
- 커널(Kernel)
![]()
LINUX
- 1991 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
- Open Source System
- 프로그래머가 원하는 기능을 추가할 수 있다
- 다양한 플랫폼에 설치하여 사용 가능
- 재배포가 가능
- UNIX와 완벽하게 호환됨
- 대부분의 특징이 UNIX와 동일
운영체제의 기본 명령어
운영체제 기본 명령어의 개요
- 운영체제를 제어하는 방법은 크게 CLI와 GUI로 구분 가능
- CLI(Command Line Interface) : 키보드로 명령을 직접 입력하여 작업을 수행
- GUI(Graphic User Interface) : 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행
Windows 기본 명령어
- CLI 기본 명령어 : 명령 프롬프트(Command)창에 명령어를 입력하여 작업을 수행하는 것
| 명령어 | 기능 |
| dir | 현재 디렉터리의 파일 목록을 표시 |
| copy | 파일을 복사 |
| del | 파일을 삭제 |
| type | 파일의 내용 표시 |
| ren | 파일의 이름 변경 |
| md | 디렉터리를 생성 |
| cd | 동일한 드라이브에서 디렉터리의 위치를 변경한다 |
| cls | 화면의 내용을 지운다 |
| attrib | 파일의 속성을 변경한다 / 속성 종류(r(읽기 전용), a(저장/백업), s(시스템 파일), h(숨김 파일) |
| find | 파일에서 문자열을 찾는다 |
| chkdsk | 디스크 상태를 점검한다 |
| format | 디스크 표면을 트랙과 섹터로 나누어 초기화한다 |
| move | 파일을 이동한다 |
UNIX / LINUX 기본 명령어
- CLI 기본 명령어 : 쉘에 명령어를 입력하여 작업을 수행하는 것
| 명령어 | 기능 | |
| cat | 파일 내용을 화면에 표시 | |
| cd | 디렉터리 위치 변경 | |
| chmod | 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정 | ; |
| chown | 파일 소유자와 그룹을 변경 | |
| cp | 파일을 복사 | |
| rm | 파일을 삭제 | |
| find | 파일을 찾는다 | |
| fsck | 파일 시스템을 검사하고 보수 | |
| kill | PID(프로세스 고유 번호)를 이용하여 프로세스를 종료 | |
| killall | 프로세스의 이름을 이용하여 프로세스를 종료 | |
| ls | 현재 디렉터리의 파일 목록 표시 | |
| mkdir | 디렉터리 생성 | |
| rmdir | 디렉터리 삭제 | |
| mv | 파일 이동 | |
| ps | 현재 실행중인 프로세스 표시 | |
| pwd | 현재 작업중인 디렉터리 경로를 화면에 표시 | |
| top | 시스템의 프로세스와 메모리 사용 현황을 표시 | |
| who | 현재 시스템에 접속해있는 사용자를 표시 | |
| tar | 파일을 압축하거나 압축을 해제 | |
| head | 파일 내용의 앞부분을 출력 |
- GUI 기본 명령어 : X Window라는 별도의 프로그램을 설치하여 GUI 방식으로 운영 가능
기억장치 관리
보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
반입(Fetch) 전략
- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
- 요구 반입(Demand Fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
- 예상 반입(Anticipatory Fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법
배치(Placement) 전략
- 새로 반입되는 프로그램이나 데이터를 주기억장치 어디에 위치시킬 것인지를 결정하는 전략
- 최초 적합(First Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법
- 최적 적합(Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
- 최악 적합(Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
교체(Replacement) 전략
- 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
- OPT(OPTimal replacement, 최적 교체) : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
- FIFO(First In First Out) : 선입선출
- LRU(Least Recently Used) : 가장 오랫동안 참조되지 않은 페이지를 교체
- LFU(Least Frequently Used) : 사용빈도가 가장 적은 페이지를 교체
- NUR(Not Used Recently) : 최근에 사용하지 않은 페이지를 교체
- MRU(Most Recently Used) : 사용 빈도가 가장 많은 페이지를 교체
프로세스 관리 및 스케쥴링
프로세스
프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 즉 실행중인 프로그램을 의미, Job 또는 Task라고도 한다
- 프로세스의 다른 정의
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체
- 프로시저가 활동중인 것
- 운영체제가 관리하는 실행 단위
- 실행중인 프로그램
- PCB를 가진 프로그램
- 비동기적 행위(다수의 프로세스가 서로 규칙적이거나 연속적이지 않고 독립적으로 실행되는 것)를 일으키는 주체
프로세스 상태 전이
프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
- 프로세스의 상태
- 제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할등 위치에 저장된 상태
- spooling : 상대적으로 느린 입출력장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
- 준비(Ready) : 프로세스가 CPU를 할당받기 위해 기다리고 있는 상태, 준비상태 큐에서 실행 준비
- 준비상태 큐 : 여러 프로세스가 CPU를 할당받기 위해 기다리는 장소
- 실행(Run) : 준비상태 큐에 있는 프로세스가 CPU를 할당받아 실행되는 상태
- 대기(Wait), 보류, 블록(Block) : 프로세스에 입출력 처리가 필요하다면 현재 실행 중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태
- 종료(Terminated, Exit) : 프로세서의 실행이 끝나고 프로세스 할당이 해제된 상태
스케쥴링(Scheduling)
프로세스가 실행되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 스케쥴링을 수행하는 것 = 스케쥴러
- 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케쥴링 과정을 거치게 된다
- 프로세스 스케쥴링 기법
- 비선점(Non-preemptive) 스케쥴링 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케쥴링 기법
종류 설명 FCFS=FIFO 준비상태 큐에 도착한 순서에 따라 CPU를 할당하는 기법 SJF 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법 HRN 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법 우선 순위 준비상태 큐에서 기다리는 각 프로세스마다 우선 순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
- 선점(Preemptive) 스케쥴링 : 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케쥴링 기법
종류 설명 SRT 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행시간을 비교하여 가장 짧은 시간을 요구하는 프로세스에게 CPU를 할당하는 기법 라운드로빈(RR; Round Robin) 규정 시간 또는 시간 조각(Slice)을 미리 정의하여 CPU 스케쥴러가 준비상태 큐에서 정의된 시간만큼 각 프로세스에 CPU를 제공하는 시분할 시스템에 적절한 스케쥴링 기법 다단계 큐 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법 다단계 피드백 큐 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법
- 비선점(Non-preemptive) 스케쥴링 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케쥴링 기법