1-1 응용 SW 기초 기술 활용
(1) 운영체제 기초 활용★★★
1. 운영체제의 개념
- 사용자가 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어이다.
- 중앙처리장치 : 장치를 제어하고, 데이터를 처리한다.
- 기억장치 : 데이터를 저장한다.
- 통신장치 : 외부와의 통신을 담당한다.
- 입출력장치 : 데이터 입력과 출력을 담당한다.
(2) 운영체제의 목적
목적 | 설명 |
사용자 편리성 제공 | - 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영 - 입출력을 위한 편의 제공 |
인터페이스 기능 담당 | - 컴퓨터 시스템과 사용자를 연결함 |
스케쥴링 담당 | - 자원의 현재 상태를 파악하고, 자원 분배를 위한 스케쥴링 담당 - 프로세서, 메모리 등의 자원 스케쥴링 |
자원 관리 | - CPU, 메모리 공간, 기억장치, 입출력 장치 등의 자원을 관리 |
제어 기능 | - 입출력 장치와 사용자 프로그램을 제어 |
오류 회복 기능 | - 소프트웨어나 하드웨어에 오류가 발생하면 자체 회복시도 |
(3) 운영체제 성능 평가 기준
평가 기준 | 설명 |
경과 시간 ( = 반환 시간 ) (Turnaround Time) |
작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 |
응답 시간 ( = 반응 시간 ) (Response Time) |
작업이 처음 실행되기 전까지 걸린 시간 |
사용 가능도 (Availability) |
시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
신뢰성 (Reliability) |
주어진 문제를 정확하게 해결하는 정도 |
처리량 (Throughput) |
일정 시간 내에 시스템이 처리하는 일의 양 |
(4) 운영체제의 기능
① 제어 프로그램(Control Program)
- 시스템 전체의 움직임을 감사 감독 관리 및 지원 한다.
종류 | 설명 |
감시 프로그램 (Supervisor Program) |
시스템 전체의 작동 상태 감시 및 감독 |
작업 제어 프로그램 (Job Control Program) |
작업의 연속 처리를 위한 스케쥴 및 시스템 자원 할당 담당 |
데이터 관리 프로그램 (Data Management Program) |
주기억장치와 보조기억장치 사이의 데이터 전송과 자료 갱신 및 유지보수 기능 담당 |
② 처리 프로그램(Processing Program)
- 응용 프로그램 감독하에 실제 데이터 처리를 한다.
종류 | 설명 |
언어 번역 프로그램 (Language Translater Program) |
원시 프로그램을 기계어 형태로 번역 ex) 어셈블러, 컴파일러, 인터프리터 |
서비스 프로그램 (Service Program) |
효율성을 위해 사용 빈도가 높은 프로그램 ex) 링커, 정렬/합병 프로그램, 라이브러리, 유틸리티 프로그램 |
문제 프로그램 (Problem Program) |
특정 업무 해결을 위해 사용자가 작성한 프로그램 |
(5) 운영체제에서 쉘과 커널
① 쉘(Shell)
- 사용자가 입력한 명령어 해석가
- 시스템과 사용자간의 인터페이스 제공
- 여러 가지 내장명령어를 가지고 있다.
② 커널(Kernel)
- 운영체제의 핵심이 되는 기능들의 집합체
- 프로그램과 하드웨어 간의 인터페이스 역할 담당
기능 | 설명 |
프로세스 관리 | - 스케쥴링 및 동기화 관리 담당 - 프로세스의 기능 담당 |
기억장치 관리 | - 메모리 할당 및 회수 관리 담당 |
주변장치 관리 | - 입 출력 장치 스케쥴링 및 전반적인 관리 담당 |
파일 관리 | - 파일 관리 파일의 생성과 삭제, 변경 , 유지 등의 관리 담당 |
(6) 운영체제 운용 기법
운용 기법 | 설명 |
일괄 처리 시스템 | - 모아두었다가 한꺼번에 처리하는 방식 |
다중 프로그램 시스템 | - 하나의 CPU와 주기억장치를 이용하여 여러개의 프로그램을 동시에 처리하는 방식 |
시분할 시스템 | - 여러 사용자가 공유하고 있지만 마치 자신만이 독점하여 사용하고 있는 것처럼 느끼도록 처리하는 방식 - 다중프로그램과 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능 - CPU의 전체 사용시간을 작업 시간량으로 나누어서 각 작업을 처리 |
다중 처리 시스템 | - 여러개의 CPU와 하나의 주기억장치를 이용하여 여러개의 프로그램을 동시에 처리하는 방식 |
분산 처리 시스템 | - 여러 개의 컴퓨터(프로세스)를 통신회선으로 연결하여 하나의 작업을 처리하는 방식 - 여러 사용자가 데이터를 공유 - 점진적 확장 가능, 사용 가능도가 향상 - 연산 속도 향상과 신뢰성 증진 |
(7) 운영체제의 종류
① 윈도즈 계열 운영 체제 ( MS사가 개발)
특징 | 설명 |
그래픽 사용자 인터페이스 (GUI) 제공 | 그래픽 기반의 인터페이스 제공 |
선점형 멀티태스킹 방식 제공 | 동시에 여러 개의 프로그램을 실행하면서 운영 체제가 각 작업의 CPU 이용시간을 제어 |
자동감지 기능 제공 | 시스템 환경을 운영체제가 자동을 구성 |
OLE (Object Linking and Embedding ) 사용 | 작성 중인 문서에 연결 또는 삽입하여 편집 할 수있는 기능제공 |
②유닉스 계열 운영체제
- C 언어로 구현되어 있는 운영체제
특징 | 설명 |
대화식 운영체제 | 사용자가 명령을 입력하면 수행하는 기능 |
다중 작업 | 한번에 하나이상의 작업을 수행하는 기능 |
다중 사용자 | 여러 사용자가 동시에 시스템을 사용하여 각각의 작업을 수행하는 기능 |
이식성 | 다른 하드웨어 기종으로 쉽게 이식 가능 |
계층적 파일 시스템 제공 | - 계층적 트리구조를 가짐 |
③리눅스 계열 운영체제
- 리눅스는 데미안, 레드햇, Fedora, Ubuntu Cent OS와 같이 다양하게 출시
( 2 ) 메모리 관리 ★★★
1. 메모리 관리 개념
- 메모리 관리는 중앙처리장치, 메모리, 스토리지, 구변 기기 등을 적절히 관리하는 기법
- CPU가 프로그램을 읽어서 연속적으로 동작하기 위해서는 중요한 기법이다.
2. 메모리 관리 기법
기법 | 설명 | 세부 기법 |
반입 기법 (Fetch) |
- 주 기억장치에 적재할 다음 프로세스의 반입시기를 결정하는 기법 - 메모리로 적재 시기 결정 |
- 요구 반입 기법 - 예상 반입 기법 |
배치 기법 (Placement) |
- 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정 - 메모리 적재 위치 결정 |
- 최초 적합 - 최적 적합 - 최악 적합 |
할당 기법 (Assignment) |
- 실행해야 할 프로세스를 주기억장치에 어떤방법으로 할당할 것인지 결정 - 메모리 적재 방법 결정 |
- 연속 할당 기법 - 분산 할당 기법 |
교체 기법 (Replacement) |
- 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것 인지를 결정 - 메모리 교체 대상 결정 |
- 프로세스의 Swap In/Out - FIFO, LRU, LFU |
① 메모리 반입 기법
기법 | 설명 |
요구 반입 기법 | 다음에 실행될 프로세스가 참조 요구가 있을 경우에 적재 |
예상 반입 기법 | 시스템의 요구를 미리 예측하여 미리 메모리에 적재하는 기법 요구되는 페이지외 다른페이지에도 함께 적재 |
② 메모리 배치 기법
기법 | 설명 |
최초 적합 (First Fit) |
- 프로세스가 적재될 수 있는가용 공간 중에서 첫 번째 분할에 할당하는 방식 |
최적 적합 (Best Fit) |
- 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식 - 공백 최소화 장점 |
최악 적합 (Worst Fit) |
- 프로세스의 가용 공간 중에서 가장 큰 공간에 할당 |
③ 메모리 할당 기법
종류 | 설명 | 기법 |
연속 할당 기법 | - 실행을 위한 각 프로세스를 주기억장치 공간내에서 인접되게 연속하여 저장 - 프로세스를 주기억장치에 연속으로 할당하는 기법 |
- 단일 분할 할당 기법 : 오버레이 스와핑 - 다중 분할 할당 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법 |
분산 할당 기법 | - 하나의 프로세스르 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치 - 주로 가상기억장치에서 사용 |
- 페이징 기법 - 세그먼테이션 기법 - 페이징/세그먼테이션 기법 |
- 메모리 연속 할당 기법 중 다중 분할 할당 기법에는 고정 분할 할당 기법 과 가변 분할 할당 기법이 있다.
구분 | 설명 |
고정 분할 할당 기법 ( = 정적 할당 기법 ) |
- 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비 상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법 - 프로그램을 실행하려면 프로그램 전체가 주기억장치에 위치해야 한다. - 외부조각과 내부조각 문제가 발생할 수 있음 |
가변 분할 할당 기법 ( = 동적 할당 기법 ) |
- 고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할하는 것이 아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 영역을 분할 하는 기법으로 효율성이 높음 - 외부조각 문제가 발생할 수 있음 - 빈 공간에 대한 통합과 집약이 필요 |
- 메모리 연속 할당 기법 중 분산 할당 기법에는 페이징 기반, 세그먼테이션기법, 페이징/세그먼테이션 기법이 있다.
구분 | 설명 |
페이징 기법 | - 주기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나누 후 나눠진 프로그램을 동일하게 나눠진 주기억장 영역에 적재시켜 실행하는 기법 - 내부 단편화가 발생할 수 있음 |
세그먼테이션 기법 | - 프로그램을 다양한 크기의 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 방법 - 외부 단편화가 발생할 수 있음 |
페이징/세그먼테이션 기법 | - 외부 단편화 및 내부 단편화 최소화를 위하여 세그먼테이션 기법과 페이징 기법을 결합한 기법 - 페이징/세그먼테이션 기법은 하나의 세그먼트를 정수 배의 부분 페이지로 다시 분할하는 방식 |
④ 교체기법 ★
⒜ 교체 기법 개념
- 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거 할것인지 결정하는 기법
- 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지 결정하는 방법
⒝ 교체 기법 유형
세부 기법 | 설명 |
FIFO (First In First Out) |
- 가장 먼저 들어와 가장 오래 있던 페이지를 교체하는 기법 |
LRU (Least Recently Used) |
- 가장 오랫동안 사용되지 않은 페이지를 교체하는 기법 - 프로그램의 지역성의 원리에 따라서 최근에 참조된 페이지는 아프오롣 참조될 가능성이 크고, 최근에 참조되지 않은 페이지는 앞으로도 참조되지 않을 가능성이 크다는 전제로 구현 |
LFU (Least Frequently Used) |
- 참조 횟수가 가장 적은 페이지를 선택하여 교체하는 기법 |
OPT (OPTimal Replacement) |
- 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법 - 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 기법 |
NUR (Not Used Recently) |
- LRU와 비슷, 최근에 사용하지 않은 페이지를 교체하는 기법 - 앞으로도 사용하지 않을 가능성이 크다는 것을 전제로, LRU에서 나타나는 시각적인 오버헤드를 줄일 수 있음 - 최근 사용여부를 확인하기 위해 참조비트 와 변형비트 사용 |
SCR (Second Chance Replacement) |
- 가장 오랫동안 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법 FIFO 기법의 단점을 보완 |
3. 지역성
① 지역성 개념
- 프로세스가 실행되는 동안 주기억장치를 참조 할 때 일부 페이지만 집중적으로 참조하는 특성
② 지역성의 유형
유형 | 설명 | 사례 |
시간 지역성 (Temporal) |
- 최근 사용되었던 기억장소들이 집중적으로 액세스하는 현상 - 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높은 특성 |
- Loop, 스택, 부프로그램, 집계에 사용된 변수 |
공간 지역성 (Spatial) |
- 일정 위치의 페이지를 집중적으로 액세스하는 현상 | - 배열 순회 |
순차 지역성 (Sequential) |
- 데이터가 순차적으로 액세스 되는 현상 - 프로그램 내의 명령어가 순차적으로 구성된 특성 |
- 순차적 코드 실행 |
( 3 ) 프로세스 스케쥴링 ★★★
1.프로세스
① 프로세스 개념
- CPU에 의해 처리되는 사용자 프로그램, 즉 실행 중인 프로그램을 의미
- 스레드는 프로세스에서 실행 제어만 분리한 실행 단위로 1개의 프로세스는 여러 개의 스레드를 가질 수 있다.
- 프로세스는 주기억장치에 저장이 되고, 여러 개의 프로세스를 동시에 띄울 수 있다.
② 프로세스 상태
프로세스 상태 | 설명 |
생성 상태 (Create) |
- 사용자에 의해 프로세스가 생성된 상태 |
준비 상태 (Ready) |
- CPU를 할당받을 수 있는 상태 - 준비 리스트: 각각 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당 받음 |
실행 상태 (Running) |
- 프로세스가 CPU를 할당받아 동작 중인 상태 |
대기 상태 (Wating) / 블록 상태 (Block) | - 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태 - 대기 리스트 : 우선순위가 존재하지 않음 |
완료 상태 (Complete) / 종료 상태 (Terminated/Exit) | - 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태 |
2. 프로세스 상태 전이
프로세스 상태 전이 | 설명 |
디스패치 (Dispatch) |
- 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 설정하여 CPU를 할당 -> 문맥교환 발생 - 프로세스는 준비 상태에서 실행상태로 전이 |
할당 시간 초과 (Timeout) |
- CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케쥴러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이 - 프로세스는 실행 상태에서 준비상태로 전이 - 타임 슬라이스 만료, 선점시 타임아웃 발생 |
입출력 발생 (Block) |
- 실행 상태에 있는 프로세스가 지정된 할당 시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전이됨 - 프로세스는 실행 상태에서 대기 상태로 전이 - 즉시 실행 불가능한 시스템 콜, I/O 작업 시작, 프로세스 간 통신 시 Block 발생 |
깨움 (wake-up) |
- 어느 순간에 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 Wait & Signal 등에 의해 알려주고, 준비 상태로 전이됨 - 프로세스는 대기 상태에서 준비 상태로 전이 |
3. 프로세스 스케쥴링
① 프로세스 스케쥴링
- CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업이다.
② 프로세스 스케줄링 목적
- 모든 작업에 대한 공평성 유지
- 처리량 최대화
- 경과 시간 예측
- 오버헤드, 응답시간, 반환시간, 대기시간을 최소화
③ 프로세스 스케줄링 유형
구분 | 선점형 스케줄링 | 비선점형 스케줄링 |
개념 | - 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 방식 | - 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 방식 |
장점 | - 비교적 빠른 응답 - 대화식 시분할 시스템에 적합 |
- 응답시간 예상이 용이 - 모든 프로세스에 대한 요구를 공정하게 처리 |
단점 | - 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초래 | - 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시 까지 대기 |
알고리즘 | - SRT - 다단계 큐 - 다단계 피드백 큐 - 라운드 로빈 |
- 우선순위 - 기한부 - HRN - FCFS - SJF |
⒜ 선점형 스케줄링 알고리즘 유형
알고리즘 유형 | 동작 방식 | 특징 |
라운드 로빈 (Round Robin) |
- 프로세스는 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어감 | - 균등한 CPU 점유율 시간 - 시분할 시스템을 사용 |
SRT (Shortest Remaining Time First) |
- 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨 - 비선점 방식의 SJF에 선점 방식을 도입한 기법 |
- 짦은 수행 시간 프로세스 우선 수행 |
다단계 큐 (MLQ : Multi Level Queue) |
- 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점 당함 - 각 큐는 자신만의 독자적인 스케줄링을 가짐 |
- 독립된 스케줄링 큐 |
다단계 피드백 큐 (MLFQ: Multi Level Feedback Queue) |
- 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량을 부여 - FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용 - 여러 개의 큐를 두어 낮은 단계로 내려갈수록 프로세스의 시간 할당량을 크게 하는 프로세스 스케줄링 방식 |
- 큐마다 다른 시간 할당량 - 마지막 단계는 라운드 로빈 방식처리 |
⒝ 비선점형 스케줄링 알고리즘
알고리즘 유형 | 동작 방식 | 특징 |
우선순위 (Priority) |
- 각 프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당 - 동일 순위는 FCFS |
- 주요 긴급 프로세스에 대한 우선처리 - 설정, 자원 상황 등에 따른 우선순위 선정 |
기한부 (Deadline) |
- 작업들이 명시한 시간이나 기한 내에 완료되도록 계획 | - 요청에 명시된 시간 내 처리를 보장 |
FCFS (First Come First Served) |
- 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함 - FIFO 알고리즘이라고 함 |
- 도착한 순서대로 처리 |
SJF (Shortest Job First) |
- 프로세스가 도착한 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료될 시까지 자원 점유 - 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기시간 최소 - CPU 요구시간이 긴 작업과 짧은 작업 간의 불평등심하여, CPU 요구시간이 긴 프로세스는 기아현상 발생 |
- 기아 현상 발생 가능성 |
HRN (Highest Response Radio Next) |
- 대기 중인 프로세스 중 대기시간이 긴 프로세스일 경우 우선순위가 높아지게 하여 우선순위를 결정하는 스케줄링 기법 - 서비스 받을 시간과 서비스를 기다린 시간을 고려하여 가변적 우선순위를 결정 |
- 기아 현상 최소화 기법 |
* 프로세스 스케줄링 알고리즘 계산방법 ( 아래 참고 )
https://velog.io/@yu-jin-song/OS-CPU-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81CPU-Scheduling
[OS] CPU 스케줄링(CPU-Scheduling)
1. 개요 1.1 CPU 스케줄링(CPU-Scheduling) 멀티 프로그래밍을 가능하게 하는 운영 체제의 동작 기법 > #### 💡 멀티 프로그래밍(Multi-programming) = 다중 프로그래밍 다수의 작업(혹은 프로세스, 이하 태스
velog.io
( 4 ) 프로세스 관리-교착 상태
1. 교착상태 개념
: 다중프로세싱 환경에서 2개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태
2. 교착상태 발생 조건 ☆☆☆
발생 조건 | 설명 |
상호배제 | 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태 |
점유와 대기 | 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태 |
비선점 | 한 프로세스가 점유한 자원에[ 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태 |
환형 대기 | 2개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태 |
3. 교착 상태 해결방법 ☆☆☆
해결방법 | 설명 | 세부기법 |
예방 | 상호배제를 제외한 나머지 교착상태 발생 조건을 위배하는 방안 | 점유 자원 해제 후 새 자원 요청 |
회피 | 교착상태의 발생 가능성을 배제하지않고 이를 적절하게 피해 나가는 방법 | 은행원 알고리즘, Wound-wait, Wait-die |
발경 | 시스템의 상태를 감시 알고리즘 통해 교착상태 검사 | 자원할당 그래프, Wait for Graph |
복구 | 교착상태가 없어질 때까지 프로세스를 순차적으로 Kill하여 제거, 희생자 선택해야하고 기아 상태 발생 | 프로세스 Kill, 자원선점 |
4. 상호배제 ☆
: 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 모든 프로세스가 해당 공유 자원을 사용하지 못하도록 제어하는 기법이다.
기법 | 설명 |
세마포어 | - 멀티 프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는방법 - P 또는 V 를 수행하는 동안 프로세스가 인터럽트 당하지 않게 되어 상호배제를 구현할 수 있게 됨 - 한 프로세스에서 세미포어 값을 변경하는 동안 다른 프로세스가 동시에 이 값을 변경해서는 안됨 |
데커 알고리즘 | - 2개의 프로세스를 위한 최초의 소프트웨어적으로 상호배제를 해결한 기법 - 2개의 공유 변수인 Boolean Flag (사용의사) 와 Int turn(차례)을 사용하여 임계영역에 들어갈 프로세스를 결정하는 기법 |
피터슨 알고리즘 | - 공유 메모리를 활용하여 여러 개의 프로세스가 하나의 자원을 함께 사용할 때 문제가 발생하지 않도록 해주는 기법 |
램포트 알고리즘 | - 수행 순서를 위한 번호표 부여하여 낮은 번호의 프로세스가 먼저 임계영역에 진입 가능하도록 설계된 기법 - 분산처리 환경에서 유용한 상호배제 기법 |
( 5 ) 디스크 스케줄링
1. 디스크 스케줄링 개념
- 사용할 데이터가 디스크상의 여러 곳에 저장되어 있을경우, 데이터를 액세스하기 위해 디스크 헤드를 움직이는 경로를 결정하는 기법
- 운영체제가 담당하고 디스크 스케줄링 목적은 처리량 최대화, 응답시간 최소화이다.
2. 디스크 스케줄링 종류 ☆☆☆
종류 | 설명 |
FCFS (First Come First Served) [ = FIFO ] |
- 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법 |
SSTF (Shortest Seek Time First) |
- 현재 위치에서 탐색거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법 - 일괄처리 시스템에 유용 - 현재 헤드 위치에서 가장 가까운 거리에 있는 트랙으로 헤드를 이동시킴 |
SCAN | - 현재 헤드의 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 그 방향의 모든 요청을 서비스하고 끝까지 이동한 후 역방향의 요청 사항을 서비스하는 기법 |
C-SCAN (Circular SCAN) |
- 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 탐색 거리를 갖는 요청을 서비스하는 기법 - 안쪽 끝까지 이동했으면 다시 바깥쪽부터 탐색하는 방법으로 비교적 공평한 기법 |
LOCK ( = 엘레비이터 알고리즘 ) |
- SCAN을 기초로 사용하는 기법으로 진행 방향으로 더 이상의 요청이 없으면 역방향으로 진행하는 기법 - SCAN은 이동 방향의 끝까지 간 후 방향을 바꾸지만, LOCK은 요청까지만 간 후 방향을 바꿈 |
N-STEP SCAN | - SCAN 기법을 기초로 하며 어떤 방향의 진행이 시작될 당시에 대기 중이던 요청들만 서비스하고 진행 도중 도착한 요청들은 한꺼번에 모아서 다음의 반대 진행 방향으로 진행할 때 서비스하는 기법이다. |
SLTF (Shortest Latency Time First ) |
- 섹터 큐잉 이라고 하며, 회전지연시간 최적화를 위해 구현된 기법 - 디스크 헤드가 특정 실린더에 도착하면 그 실린더 내의 여러 트랙에 대한 요청들을 검사한 후, 회전지연시간이 가장 짧은 요청부터 서비스하는 기법 |
( 4 ) 쉘 스크립트 ★★
- 쉘이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 운영체제를 위해 사용되는 스크립트
- 수행하는 일반 기능으로 파일 이용, 프로그램 실행, 문자열 출력 등이 있다.
- .sh 라는 파일 확장자를 가진 파일이 특정 종류의 쉘 스크립트를 가리키는 것이 보통이지만, 대부분의 쉘 스크립트는 파일 확장자를 지니지 않는다.
- 쉘 스크립트라는 말은 유닉스 쉘을 위해 쓰인 스크립트를 말하는 반면, COMMAND.COM(도스)과 cmd.exe(윈도즈) 명령 줄 스크립트는 보통 배치 파일이라고 불리지만 쉘 스크립트 안에 포함하기도 한다.
(1) 운영체제 기본명령어
① 윈도즈 운영체제의 기본 명령어
⒜ CLI(Command Line Interface) 기본 명령어
- CLI 명령어를 입력하기 위해서는 커맨드 창이 필요하다
명령어 | 설명 |
CD | 현재 디렉터리 이름을 보여주거나 바꿈 |
CHKDSK | 디스크를 검사하고 상태 보고서를 표시 |
CLS | 화면을 지움 |
COPY | 하나 이상의 파일을 다른 위치로 복사 |
CMD | 윈도즈 명령 프롬프트 창을 열어줌 |
DEL | 하나 이상의 파일을 지움 |
DIR | 디렉터리에 있는 파일, 하위 디렉터리 목록을 보여줌 |
ECHO | 메세지를 표시하거나 ECHO를 사용 또는 사용하지 않음 |
EXIT | CMD.EXE 프로그램(명령 인터프리터)을 마침 |
HELP | 윈도즈 명령어에 관한 도움말을 제공 |
MKDIR | 디렉터리를 생성 |
MOVE | 하나 이상의 파일을 한 디렉터리에서 다른 디렉터리로 이동 |
RMDIR | 디렉터리를 지움 |
⒝ GUI(Grapic User Interface) 기본 명령어
- 윈도 내에서 파일을 이동하고 프로그램을 실행하는 것 등 모든 것이 GUI 명령에 해당한다.
- 메모리나 디스크 제어 등이 필요할 경우에는 제어판에서 필요 기능을 선택 하여 명령을 내릴 수 있다.
② 리눅스/유닉스 계열 운영체제의 기본 명령어
특징 | 내용 |
명령어 해석기 | - 명령어의 모임인 별칭, 쉘 함수 등을 찾아 실행 |
인터페이스 | - 시스템과 사용자 간의 인터페이스를 담당 |
여러 종류 쉘 | - Bourne 계열은 Bash, Korn, Bourne 쉘 등이 존재 |
⒜ CLI 기본 명령어
- 리눅스는 최상위 유저를 CLI 환경에서 # 으로 표시하며, 일반 유저를 $로 표시한다.
- 유닉스에서 백그라운드 처리를 위해 & 명령을 사용한다.
구분 | 명령어 | 설명 |
시스템 관련 | uname | - 시스템은 모든 정보를 확인하는 명령어 - 시스템 이름, 사용 중인 운영체제와 버전, 호스트명, 하드웨어 정보 등 |
cat | 파일의 내용을 화면에 출력 | |
사용자 | id | - 사용자의 로그인명, id, 그룹id 등 출력 |
last | - 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보를 표시하는 명령 | |
who | - 현재 접속자 사용자 정보 표시 | |
파일처리 | ls | - 현재 디렉터리 내 파일 및 폴더들의 목록을 표시 |
pwd | - 현재 작업중인 디렉토리의 절대 경로를 출력 | |
rm | - 파일 삭제 | |
cp | - 파일 복사 | |
mv | - 파일 이동 | |
프로세스 | ps | - 현재 실행되고 있는 프로세스 목록 출력 |
pmap | - 프로세스ID를 기준으로 메모리 맵 정보를 출력 | |
kill | - 특정 프로세스 종룡 | |
fork | - 새로운 프로세스를 생성 | |
파일 권한 | chgrp | - 파일이나 디렉토리의 소유 그룹을 수정 |
chmod | - 파일이나 디렉토리의 퍼미션 수정 | |
chown | - 파일이나 디렉토리의 소유자를 수정 | |
압축 | tar | - 여러 개의 파일을 하나의 파일로 무꺼나 풀 때 사용 |
gzip | - 파일을 묶거나 풀 수는 없지만 압축을 담당 | |
검색 | grep | - 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용 |
find | - 특정한 파일을 찾는 명령어 | |
동기화 | rsync | - 로컬 또는 원격의 파일과 디렉토리를 복사하고 동기화하는 명령어 |
디스크 사용 | df | - 시스템에 마운트된 하드시스크의 남은 용량을 확인할 때 사용하는 명령어 |
du | - 파일 사이즈를 kbyte 단위로 보여주는 명령어 | |
디렉터리 이동 | cd | - 디렉토리를 이동하는 명령어 |
생성 | mkfs | - 파일 시스템을 생성하는 명령어 |
mknod | - 노드를 생성하는 명령어 | |
mkdir | - 새로운 디렉토리를 생성하는 명령어 |
⒝ GUI 기본 명령어
- 리눅스의 GUI는 윈도즈와 같이 기본 설정이 아닌 경우가 많아 버전별로 별도의 설치방법에 따라 GUI 환경을 설치 해야 한다.
'자격증 > 정보처리산업기사' 카테고리의 다른 글
#4. 애플리케이션 설계 (139) | 2024.05.10 |
---|---|
#3. 요구사항 확인 (60) | 2024.05.07 |
#2. 네트워크 기초 활용 (0) | 2024.04.30 |