※ 운영체제
: 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
※ 운영체제의 목적
- 처리 능력 (Throughput)
- 반환 시간 (Turn Around Time)
- 사용 가능도 (Availability)
- 신뢰도 (Reliability)
※ UNIX
: AT&T 벨(Bell) 연구소, MIT General Electric이 공동 개발한 운영체제
- 시분할 시스템(Time Sharing System)
- 트리(Tree) 구조의 파일 시스템
※ UNIX 시스템 구성
- 커널(Kernel)
- UNIX의 가장 핵심적인 부분으로 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할 담당
- 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입/출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행
- 쉘 (Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스 담당
※ LINUX
: UNIX를 기반으로 개발한 운영체제
- 오픈소스
- 대부분의 특징이 UNIX와 동일
※ Android
: 구글(Google) 사에서 개발한 개방형 모바일 운영체제
※ 기억장치 관리 - 반입 전략
: 반입(Fetch) 전략은 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전력
- 요구 반입(Demand Fetch) : 실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
- 예상 반입(Anticipatory Fetch) : 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법
※ 기억장치 관리 - 배치 전략
: 배치(Batch) 전략은 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
- 최초 적합 [First Fit]
- 최적 적합 [Best Fit]
- 최악 적합 [Worst Fit]
※ 주기억장치 할당 기법
: 프로그램이나 데이터를 실행 시키기 위해 주기억장치에 어떻게 할당한 것인지를 결정하는 기법
할당 기법 | 설명 |
연속 할당 기법 | - 프로그램을 주기억장치에 연속으로 할당하는 기법 - 종류 : 단일 분할 할당 기법, 다중 분할 할당 기법 |
분산 할당 기법 | - 프로그램을 틀정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법 - 종류 : 페이징 기법, 세그먼테이션 기법 |
※ 가상기억장치 [Virtual Memory]
: 보조기억장치의 일부를 주기억장치처럼 사용하는 것
- 구현 방법 : 페이징 기법, 세그먼테이션 기법
※ 가상기억장치 구현 방법
- 페이징 기법 [Paging]
- 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 주기억장치의 영역에 적재시켜 실행하는 기법
- 일정한 크기의 페이지(Page) 단위로 나누고 주기억장치의 단위를 페이지 프레임 (Page Frame)이라고 한다.
- 세그먼테이션 기법 [Segmentation]
- 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
※ 페이지 교체 알고리즘
- 페이지 부재(Page Fault)가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법
종류 : OPT, FIFO, LRU, LFU, NUR, SCR 등
※ OPT
: 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
※ FIFO [First In First Out]
: 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
※ LRU [Least Recently Used]
: 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
※ LFU [Least Frequently Used]
: 사용 빈도가 가장 적은 페이지를 교체하는 기법
※ NUR [Not Used Recently]
: 최근에 사용하지 않은 페이지를 교체하는 기법
※ SCR [Second Chance Replacement, 2차 기회 교체]
: 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하는 기법, FIFO 기법의 단점을 보완
※ Locality [국부성, 지역성, 구역성, 국소성]
: 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
- 시간 구역성(Temporal Locality) : 일정 시간 동안 집중적으로 액세스하는 현상
- 공간 구역성(Spatial Locality) : 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상
※ 워킹 셋 [Working Set]
: 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
※ 스래싱 [Thrashing]
: 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
※ 프로세스 [Process]
: 프로세서에 의해 처리되는 사용자 프로그램
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당하는 실체로서, 디스패치가 가능한 단위
- 프로시저가 활동 중인 것
- 비동기적 행위를 일으키는 주체
- 운영체제가 관리하는 실행 단위
※ PCB [Process Control Block]
: 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
[저장되어 있는 정보]
- 프로세스 현재 상태
- 포인터
- 프로세스 고유 식별자
- CPU 레지스터 정보
- 주기억장치 관리 정보
- 입/출력 상태 정보
- 계정 정보
※ 프로세스 상태 전이
: 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
제출 → 접수 → 준비 → 실행 → (대기) → 종료
※ 프로세스 상태 전이 관련 용어
Dispatch
: 준비상태에서 대기 중이던 프로세스가 프로세서를 할당 받아 실행 상태로 전이
Wake Up
: 대기 상태에서 준비 상태로 전이
Spooling
: 처리 속도를 보완하고 시스템 성능 향상을 위해 디스크에 저장하는 과정
※ 스레드 [Thread]
: 시스템의 여러 자원을 할당 받아 실행하는 프로그램의 단위, 경량(Light Weught) 프로세스라고도 함
※ 스케줄링 [Scheduling]
: 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
※ 비선점 스케줄링 [Non-Preemptive]
: 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
ex) FCFS, SJF, 우선순위, HRN, 기한부 등
※ 선점 스케줄링 [Preemptive]
: 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
ex) Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등
※ HRN [Highest Response-ratio Next]
: 대기 시간과 실행 시간을 이용하는 기법
우선순위 높은 것부터 낮은 순으로 우선순위 부여
★ 우선순위 계산식 = (대기 시간 + 서비스 시간) / 서비스 시간
※ 환경 변수
: 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
'CS > CS' 카테고리의 다른 글
[5, 6장] 인터페이스 구현 / 화면 설계 (0) | 2023.07.16 |
---|---|
[12장] 제품 소프트웨어 패키징 (0) | 2023.07.16 |
[11장] 응용 SW 기초 기술 활용 (2) (1) | 2023.07.16 |
[9장] 소프트웨어 개발 보안 구축 (0) | 2023.07.16 |
[7장] 애플리케이션 테스트 관리 (0) | 2023.07.16 |