코딩뿌셔
[4과목] 프로그래밍 언어 활용 - 응용 SW 기술 본문
01 운영체제 기초 활용
02 프로세스 스케줄링
01 운영체제 기초 활용
▶ 운영체제(OS; Operating System)
: 사용자로 하여금 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스 제공해주는 소프트웨어
▷ 특징
특징 | 설명 |
사용자 편리성 제공 | 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영 |
인터페이스 기능을 담당 | 컴퓨터 시스템과 사용자를 연결 |
스케줄링 담당 | 다중 사용자/응용프로그램 환경 하에 자원의 현재 상태를 파악하고 자원 분배 |
자원 관리 | CPU, 메모리 공간, 기억장치, 입출력 장치 등 자원 관리 |
제어 기능 | 입출력 장치와 사용자 프로그램 제어 |
▷ 기능
제어 프로그램 | 종류 | 기능 |
감시 프로그램 (Supervisor program) |
프로그램 실행, 시스템 전체 작동 상태 감시 및 감독 | |
작업 제어 프로그램 (Job control program) |
작업의 연속처리를 위한 스케줄, 시스템 자원 할당 | |
데이터 관리 프로그램 (Data management program) |
주기억장치-보조기억장치 사이의 데이터 전송, 보조기억장치의 자료 갱신 및 유지보수 기능 수행 |
처리 프로그램 | 종류 | 기능 |
언어 번역 프로그램 (Language translator program) |
원시 프로그램 기계어 형태 프로그램으로 번역 (어셈블러, 컴파일러, 인터프리터) |
|
서비스 프로그램 (Service program) |
효율성을 위해 사용빈도가 높은 프로그램으로 링커 (정렬/합병, 라이브러리, 유틸리티) |
|
문제 프로그램 (Problem program) |
특정 업무 해결을 위해 사용자가 작성한 프로그램 |
▷ 커널의 기능
프로세스 관리 | 기억장치 관리 | 주변장치 관리 | 파일 관리 |
- 운영체제는 크게 인터페이스(쉘)와 커널의 구조
- 쉘은 운영체제 가장 바깥부분에 위치하여 사용자 명령에 대한 처리를 담당
- 커널은 하드웨어와 관련된 내부적인 역할 담당
▶ 메모리 관리
: 중앙처리장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리하는 기법(CPU가 프로그램을 읽어서 연속적으로 동작하기 위해 매우 중요한 역할)
▷ 기본 사항
기본사항 | 설명 |
가상메모리 (Virtual Memory) |
각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소 부여 방식, 가상(Virtual) 주소 공간은 메모리 관리장치에 의해 물리(Physical) 주소로 변환 |
메모리 관리 장치 (MMU) |
CPU가 메모리에 접근하는 것을 관리하는 하드웨어 부품, 가상 메모리 주소를 실제 메모리 주소로 변환 (메모리 보호, 캐시 관리, 버스 중재 등) |
메모리 관리자 | 기억장치 어느부분이 사용 중인지 아닌지 조사하여 프로세스에게 필요할 때마다 기억장치 할당/회수, 실행 파일 심볼의 재배치 주소를 프로세스의 논리 주소로 연결시키는 작업 수행 |
▷ 메모리 관리 기법
기법 | 세부 기법 | 설명 |
반입 기법 (적재 시기 결정) |
요구 반입 기법 | 다음 실행 프로세스가 참조 요구가 있을 경우에 적재 |
예상 반입 기법 | 시스템 요구를 예측하여 미리 메모리에 적재 | |
배치 기법 (적재 위치 결정) |
최초 적합 (First Fit) |
프로세스가 적재될 수 있는 가용 공간 중 첫 번째 분할에 할당 |
최적 적합 (Best Fit) |
가용 공간 중 가장 크기가 비슷한 공간을 선택하여 프로세스 적재, (공백 초소화 장점) |
|
최약 적합 (Worst Fit) |
프로세스 가용 공간 중 가장 큰 공간에 할당하는 방식 | |
할당 기법 (적재 방법 결정) |
연속 할당 기법 | 실행 프로세스를 주기억장치 공간 내 인접되게 연속하여 할당 (단일 분할 : 오버레이, 스와핑 / 다중 분할 : 고정 분할, 동적 분할) |
분석 할당 기법 | 하나의 프로세스를 여러 조각으로 나누어 주기억장치 공간 내 분산 배치, 주로 가상기억장치에서 사용 (페이징, 세그먼테이션, 페이징/세그먼테이션) |
|
교체 기법 (교체 대상 결정) |
FIFO, LRU, LFU, OPT, NUR, SCR |
▷ 페이징 기법의 문제 및 해결방안
문제점 | 스레싱 : 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상(오류율이 클수록 스레싱 많이 발생, 전체 시스템 성능 및 처리율 저하) |
해결방안 | 워킹세트 : 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 빈번한 페이지 교체 현상을 줄이고자 하는 기법(Page Hit 증가, CPU 활용률 최적화) |
02 프로세스 스케줄링
▶ 프로세스
: CPU에 의해 처리되는 사용자 프로그램, 시스템 프로그램(실행 중인 프로그램 의미, 작업(Job), 태스크(Task))
▷ 상태
생성 (Create) |
준비 (Ready) |
실행 (Running) |
대기 (Waiting) |
완료/종료 exit (Complete/Terminated) |
▷ 구성요소
: 사용자 작성 코드, 사용자 사용 데이터, 스택(Stack), 프로세스 제어 블록(PCB)
▷ 프로세스 제어 블록(PCB) 구성요소
PID(프로세스 식별자) | 프로세스 상태 | 프로그램 카운트 | 레지스터 저장 영역, |
프로세서 스케줄링 정보 | 계정 정보 | 입출력 상태 정보 | 메모리 관리 정보 |
▶ 프로세스 관리 - 교착상태
: 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태
▷ 교착상태 발생 조건
발생 조건 | 설명 |
상호배제 | 프로세스가 자원을 배타적을 ㅗ점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태 |
점유와 대기 | 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태ㅐ |
비선점 | 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태 |
환형 대기 | 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태 |
▷ 교착상태 해결방법
해결방법 | 설명 | 세부기법 |
예방 (Prevention) |
상호배제를 제외한 나머지 교창상태 발생 조건을 위배 | 점유 자원 해제 후 새 자원 요청 |
회피 (Avoidance) |
안전 상태를 유지할 수 있는 요구만 수락 (프로세스별 자원 최대 요구량 확보) |
Banker's Alforithm, Wound-Wait, Wait-Die |
발견 (Detection) |
시스템의 상태를 감시 알고리즘을 통해 교착상태 검사 | 자원할당 그래프, Wait for Graph |
복구 (Recovery) |
교착상태가 없어질 때까지 프로세스 순차적 제거 | 프로세스 Kill, 자원선점 |
'자격증 > 정보처리기사' 카테고리의 다른 글
[5과목] 정보시스템 구축관리 - 소프트웨어 개발방법론 (0) | 2022.07.04 |
---|---|
[4과목] 프로그래밍 언어 활용 - 네트워크 기초 활용 (0) | 2022.07.03 |
[4과목] 프로그래밍 언어 활용 - 서버프로그램 구현 (0) | 2022.07.03 |
[3과목] 데이터베이스 구축 (0) | 2022.06.15 |
[2과목] 소프트웨어 개발 - 데이터 입출력 (0) | 2022.06.14 |
Comments