개발의변화
4-3 응용 SW 기초 기술 활용(운영체제) 본문
운영체제 특징(사인스자제)
사용자편리성, 인터페이스 기능, 스케줄링, 자원 관리, 제어 기능
운영체제 기능
제어 프로그램(감작데): 감시 프로그램, 작업 제어 프로그램, 데이터 관리 프로그램
처리 프로그램(언서문): 언어 번역 프로그램, 서비스 프로그램, 문제 프로그램
운영체제 커널의 기능
운영체제는 크게 인터페이스(쉘)와 커널의 구조
쉘
- 사용자가 입력시킨 명령어 라인을 읽어 필요한 시스템 기능 실행 시키는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 제공한다
- 여러 가지의 내장 명령어
커널: 프로그램과 하드웨어 간의 인터페이스 역할을 담당
- 프로세스 관리
- 기억장치 관리
- 주변장치 관리
- 파일 관리
운영체제의 종류
윈도즈 계열 운영체제(지선자오)
GUI 제공: 키보드 없이 마우스
선점형 멀티태스킹 방식: 동시에 여러 개 사용 가능, 이용시간 제어
자동감지 기능: 하드웨어를 설치할 때 운영체제 자동 구성
OLE: 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집 가능
리눅스/유닉스(대다다이계)
AT&T가 본격적으로 팔고 , Multics가 만듬
리눅스는 유닉스 호환 커널 -> 자유롭고 재배포가 가능하게 만듦
- 대화식 운영체제: 명령 입력하면 수행
- 다중 작업: 한번에 하나 이상
- 다중 사용자: 여러 사람이 동시에 시스템 사용 각각의 작업 수행할 수 있는 기능 제공
- 이식성: 90% 이상 C언어로 구현되어 있고, 시스템 프로그램이 모듈화되어 있어서 다른 하드웨어 기종으로 이식 가능
- 계층적 파일 시스템 제공: 유닉스는 계층적 트리 구조를 가짐으로써 통합적인 파일 관리 용이
메모리 관리 기법(반배할교)
반입 기법: 요구 반입 기법, 예상 반입 기법
배치 기법: Worst Fit, First Fit, Best Fit
할당 기법: 연속 할당 기법, 분산 할당 기법
교체 기법: 프로세스의 Swap In/Out, FIFO, LRU, LFU
메모리 배치 기법:
First Fit: 가용 공간 중에 지나가다가 들어갈 수 있으면 들어감
Best Fit: 가용 공간이랑 가장 크기가 비슷한 공간으로 들어감
Worst Fit: 제일 큰 가용 공간으로 들어감
메모리 할당 기법
연속 할당 기법: 1. 단일 분할 할당: 오버레이,스프레이
2. 다중 분할 할당: 고정 분할 할당, 동적 분할 할당
분산 할당 기법: 페이징 기법, 세그먼테이션 기법, 페이징/세그먼테이션 기법
페이징 기법
가상기억장치 내의 프로세스를 일정하게 분할하여 주기억 장치의 분산된 공간에 적재시킨 후 프로세스를 수행시키는 수법
프레임: 실제 공간을 페이지 크기로 나눔
장점: 공유 페이지 이용, 메모리 활용을 통한 다중 처리 가능
단점: 하드웨어 비용 소요, 속도 저하
세그먼테이션 기법
가변적으로 메모리를 할당하는 기법
장점: 가변적인 데이터 구조와 모듈처리, 자원의 효율적 이용
단점: 외부 단편화 발생
메모리 교체 기법
FIFO(First In First Out)
LRU(Least Recently Used)
LFU(Least Frequently Used)
메모리 단편화
내부 단편화: 분할된 공간에 프로세스를 적재한 후 남은 공간, 고정 분할 할당 방식 또는 페이징 기법 사용 시 발생하는 메모리 단편화
외부 단편화: 할당된 크기가 프로세스 크기보다 작아서 사용하지 못하는 공간, 가변 분할 할당 방식 또는 세그먼테이션 기법 사용 시
페이징 기법 해결방안 (스레싱,워킹 세트,페이지 부재 빈도(PFF))
문제점-스레싱(Thrashing)
어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스 실제 처리 시간 보다 페이지 교체 시간이 더 많아지는 현상
오류율 클수록 스레싱 많이 발생, 스레싱으로 성능 및 처리율 저하
페이지 부재 증가 기억장치 접근 시간 증가
해결책
워킹 세트(Working Set)
각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치에 기억
단점: 추적관리 복잡, 크기설정 모호함
페이지 부재 빈도(PFF)
페이지 부재율의 상한과 하한을 정해서 직접적으로 페이지 부재율 예측 조절
단점: 프로세스를 중지 시키는 과정이 발생하여 새로운 지역성 생길 수 있음
지역성
- 프로세스가 실행되는 동안 주기억 장치 참조할 때 일부 페이지만 집중적 참조
- 스레싱 방지 워킹 셋 이론 기반
- 프로세스가 집중적으로 사용하는 페이지 알아내는 방법 하나
시간 지역성
최근 사용되었던 기억장소 집중적으로 액세스(Loop,Stack,Sub Routine, Counting, Totaling)
공간지역성(공간+순차)
공간지역성: 일정 위치의 페이지 집중적 액세스, 근처의 메모리 액세스(배열 순회, 관련된 변수, 기억한 곳)
순차지역성: 데이터가 순차적으로 액세스 되는 것(순차적 코드 실행)
프로세스
실행 중인 프로그램, 작업,태스크
프로세스 상태(생준실대완)
생성: 프로세스 생성
준비: CPU 할당 준비
실행: CPU 할당 후 실행
대기: 입출력 처리로 CPU 양도되어짐
완료,종료: 주어진 시간 내 완전히 수행
디스패치: 준비 상태에 있는 여러 프로세스 중 실행된 프로세스를 스케줄링하여 CPU 할당 -> 문맥교환 발생
문맥교환(Context Switching): CPU가 실행하고 있는 프로세스 문맥 상태를 PCB에 저장하고 다음 프로세스 PCB 문맥 복원
할당시간 초과(Timeout): CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장
입출력 발생(Block): 실행 상태에 있는 프로세스가 지정된 할당 시간을 초과하기 전에 입출력 발생 대기 상태로 전이
깨움(Wake-Up): 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 알려주고 전이됨
스레드
프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름
커널 수준 스레드(오버헤드 많음,느림,다른 작업 할 수 있음, 안정성+다양한 기능), 사용자 수준 스레드(스케줄링 결정, 동기화X, 문맥교환X,순서모름, 블록됨)
프로세스 스케줄링
선점형 프로세스 스케줄링: 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
비교적 빠른 응답, 대화식 시분할 시스템에 적합/ 높은 우선순위 프로세스 오버헤드 초래
비선점형: CPU 반환 시까지 다른 프로세스 CPU 점유가 불가능한 스케줄링 방식
응답시간 예상이 용이, 모든 프로세스에 대한 요구를 공정하게 처리/ 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기
선점형 스케줄링(RMMR)
SRT(shortest remaining time first)
가장 짧은 시간이 소요되는 프로세스 먼저 수행, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐 생기면 언제라도 선점
MLQ(multi level queue)
작업들을 여러 종류 그룹으로 분할 여러 개의 큐를 이용 상위->하위 작업 선점
MLGQ(multi level feedback queue)
입출력/CPU 위주에 따라 다른 CPU 할당량 부여
FCFS와 라운드 로빈 스케줄링 기법을 혼합한 것/ 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식 작용
RR(round robin)
같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간내에 처리 완료 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU 대기 중인 다음 프로세스로 넘어감 (큐가 중요)
비선점형 스케줄링(PDFJH)
Priority,Deadline,FCFS(first come first served),SJF(shortest job first),HRN(Highest Response Ratio Next)
우선순위(Priority): 각 프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함
기한부(Deadline): 작업들이 명시된 시간이나 기한 내 완료되도록 계획
FCFS(First Come First Served): 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함, FIFO 알고리즘이라고도 함
SJF(Shortest Job First): 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
HRN(Highest Response Ratio Next): 대기 중인 프로세스 중 대기시간이 긴 프로세스일 경우 우선순위가 높아지게 하여 대기시간+서비스시간/서비스시간, 우선순위 계산식의 수치가 가장 높은 것부터 낮은 순으로 우선순위를 부여하여 SJF의 약점인 기아 현상을 보완한 기법
프로세스 스케줄링 알고리즘 계산방법
반환시간 = 종료 시간 - 도착 시간
대기시간 = 반환시간 - 서비스 시간
프로세스 관리- 교착상태
교착상태: 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태
교착상태 발생 조건(상점비환)
상호배제, 점유와 대기(Hold & Wait), 비선점(Non Preemption),환형 대기(Circular Wait)
교착상태 해결방법(예회발복)
예방: 상호배제를 제외한 나머지 교착상태 발생 조건을 위배하는 방안
회피: 안전한 상태를 유지할 수 있는 요구만 수락(은행가 알고리즘, Wound-Wait,Wait Die)
발견: 시스템의 상태를 감시 알고리즘 통해 교착상태 검사(자원할당 그래프, Wait for Graph)
복구: 교착상태가 없어질 때까지 프로세슬르 순차적으로 Kill하여 제거, 희생자 선택하고 기아 상태 발생(프로세스 Kill, 자원선점)
디스크 스케줄링
디스크 헤드 움직이는 기법
FCFS: 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법
SSTF: 현재 위치에서 탐색거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스
SCAN: 현재 헤드의 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 그 방향의 모든 요청을 서비스하고 끝까지 이도안 후 역방향의 요청 사항을 서비스하는 기법
C-SCAN: 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 탐색 거리를 갖는 요청을 서비스하는 기법
LOOK(엘레베이터 알고리즘): SCAN을 기초로 사용하는 기법으로 진행 방향으로 더 이상의 요청이 없으면 역방향으로 진행하는 기법
N-STEP SCAN: SCAN 기법을 기초로 하며 어떤 방향의 진행이 시작될 당시에 대기 중이던 요청들만 서비스
SLTF: 섹터 큐잉, 회전지연시간 최적화
환경변수
echo %PATH%: 프로그램을 찾는 기본 경로 보여주기
echo $PATH: 유닉스 쉘에서는 이렇게
SET 변수= 값 : 특정한 값에 변수 할당
SET 변수 = : 값 할당안하면 변수가 지워짐
유닉스 시스템:
env,set,printenve 명령어들은 변수 없이 사용하면, 모든 환경 변수 및 그에 따른 모든 값을 보여줌
env,set: 환경 변수를 설정하는 데 쓰일 수도 있으며, 쉘에 직접 통합
printenv: 변수 이름을 명령어에 단일 변수로 주면 하나의 단일 변수 인쇄 쓰일 수있음
env: 전역 변수설정 및 조회
set: 사용자 환경 변수를 전역 변수로 설정
export: 사용자 환경 변수를 전역 변수로 설정, 사용자가 생성하는 변수는 export 명령어로 표시하지 않는 한 현재 쉘에 국한
파일 디스크립터
운영체제가 필요로 하는 파일에 대한 정보를 가지고 있는 파일 제어 블록
파일마다 독립적, 시스템에 따라 다른 구조
보조기억장치 저장 오픈 후 주기억장치로 이동
파일 디스크립터는 파일 시스템에서 관리하므로 사용자가 직접 참조X
'정보처리기사 준비' 카테고리의 다른 글
5-2 IT프로젝트 정보시스템 구축관리 (0) | 2023.05.06 |
---|---|
5-1 소프트웨어 개발방법론 활용 (0) | 2023.05.05 |
4-2 프로그래밍 언어 활용 (0) | 2023.05.05 |
4-1 서버프로그램 구현 (0) | 2023.05.05 |
4-3 응용 SW 기초 기술 활용(네트워크) (2) | 2023.05.05 |