본문 바로가기

디지털 포렌식 (Forensic)/디지털포렌식전문가 2급 필기

[디지털포렌식] 2-2-4. 운영체제의 기능

728x90
반응형

메모리 관리자의 역할

- 주기억장치의 유휴 공간 관리

- 페이지 풀 관리 및 페이징

- VAS(Virtual Address Space)에 의한 메모리 보호

 

폴링(Polling) 방식 입출력

- 운영체제의 입출력 방식 중 운영체제가 입출력 연산의 종료 시점을 결정하고 주기억장치의 장치 제어 기간 데이터 전송을 CPU가 직접 입출력을 수행하는 방법

 

Exception

- 운영체제는 프로그램이 실행될 때 Divide Error, Stack Fault 등이 발생하면 실행 중인 프로세스를 중단하고 관련 오류를 처리함

 

메모리 분석의 중요성

- 대표적인 휘발성 자료

- 사용자의 프라이버시를 보호할 수 있음

- 메모리에 바로 로드되는 악성코드를 확인 가능

 

가상 메모리

- RAM + pagefile.sys

 

디스크 스케쥴링 기법

- 다수의 사용자가 서로 다른 작업을 처리하기 위하여 디스크의 입출력을 요구할 때 좀 더 효율적으로 요청을 처리하기 위한 기법

 

C-SCAN (Circular-SCAN)

- 디스크 스케쥴링 기법 중 헤드가 항상 바깥쪽 실린더에서 안쪽 실린더로 이동하면서 가장 짧은 탐색 시간을 갖는 요청을 서비스하는 기법

- 디스크 헤드의 실린더 이동 거리의 합을 최소화

- 디스크 실린더 양 끝 쪽에 위치한 데이터의 과도한 읽기 시간 지연 방지

 

이중 연산 모드

- 시스템 자원 보호를 위하여 사용됨

 

요구 페이징 기법

- 물리 메모리 주소를 구하기 위하여 하드웨어 지원을 받음

- 내부 단편화 현상으로 인하여 거의 모든 프로세스에 낭비가 있음

- 페이지 크기를 크게 하면 메모리 낭비가 커질 수 있음

 

TLB (Translation Look-aside Buffer)

- 가상 메모리 구현에 일반적으로 사용되는 페이징 기법은 가상 메모리 주소와 물리적 메모리 주소 간의 변환에 많은 CPU 시간이 낭비 될 수 있는데, 이런 주소 변환 시간을 줄이기위하여 사용하는 하드웨어

 

convoy 효과를 피하는 방법

- CPU를 많이 사용하는 프로세스의 스케줄링 우선 순위를 낮춤

 

다중 쓰레드 간 공유되는 자원

- 오픈된 파일 자원

- 동적으로 할당딘 메모리 공간

- 동기화를 위한 Semaphore 자원

 

쓰레싱 현상

- 가상 메모리 시스템을 채택하고 있는 시스템에서 발생 가능

- 시스템 내의 입/출력 처리 요청이 빠르게 증가

- 할당 가능한 메모리 공간이 부족할 때 발생

 

자원관리 기능

- 프로세스 관리, 기억장치 관리, 파일 관리

 

소프트웨어 폴링 방식 인터럽트 제어

- 인터럽트 요청 신호가 들어오면 각 입/출력 장치에 해당하는 주소를 차례로 조사하여 인터럽트를 요구한 장치를 찾음

- 시간은 많이 걸리나 인터럽트 검사 주기와 우선순위를 가변시킬 수 있어 편리

 

메모리의 단편화 발생문제를 해결하기 위한 방법

- 외부 단편화의 해결 방법으로 제안된 압축은 메모리 할당을 변화시켜 연속적인 공간을 만들어 사용할 수 있으나 프로세서 시간을 낭비하는 결과를 가져옴

- 세그멘테이션은 메모리의 내부 단편화 문제를 해결할 수 있는 방법으로 프로그램에서 서브루틴과 같은 의미를 가짐

- 세그멘테이션은 내부 단편화는 발생하지 않으나 외부 단편화가 발생할 수 있음

 

주기억장치 관리에 반입 (Fetch)

- 주기억장치에 적재할 다음 프로그램이나 데이터를 언제 가져올 것인가를 결정하는 문제

- 반입 기법에는 요구 반입 기법과 예상 반입 기법이 존재

- 예상 반입 기법은 앞으로 요구될 가능성이 큰 데이터 또는 프로그램을 예상하여 주기억장치로 미리 옮기는 방법

 

운영체제의 커널

- 프로세스 계층으로 운영되는 운영체제의 모듈과는 달리 확장된 기계 개념으로 운영되는 모든 운영체제를 총칭

- 컴퓨터의 하드웨어와 직접 상호작용하는 모듈

- 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 함

- 단일형 커널은 입출력 기능, 네트워크 기능, 장치 지원 등 운영체제의 일반적인 기능을 커널과 동일한 메모리 공간에 적재, 실행하는 기법을 의미

- 메모리, 프로세스 등을 관리

- OS의 중심부에 해당

- 프로세스 간의 통신을 담당

 

커널의 역할

- 프로세서 컨트롤러

- 내부 프로세스 통신

- 서브시스템

 

1계층

- 프로세서 관리로서 동기화와 프로세서의 스케줄링을 위한 프로세서를 담당

 

3계층

- 프로세스 관리로서 프로세스의 생성, 제거, 프로세스 간의 메시지 전달, 프로세스의 시작과 정지 등의 일을 담당

 

최소 탐색시간 우선 (SSTF, Short-Seek-Time-First)

- 현재 헤드 위치의 가까운 곳에 있는 모든 요구를 먼 곳보다 먼저 처리하도록 하는 기법

 

반환시간

- 프로세스 스케줄링 기준으로 프로세스들이 시스템에 들어간 시간과 마친 시간의 차이를 말하며 출력 장치의 속도에 제한을 받는 것

 

페이징

- 스와핑 기법은 실행 대기 중인 프로세스가 사용 중인 메모리를 보조기억장치로 내보내고 다른 프로세스를 위해 사용

 

교착상태

- 프로세스가 일어날 수 없는 사건을 기다리는 상태

- 다중 프로그래밍 시스템에서 서로 다른 둘 이상의 프로세서들이 상대 프로세서가 차지하고 있는 자원을 기다리는 무한 대기 상태를 의미

 

교착상태가 일어나기 위한 조건

- 최소한 하나의 자원이 비공유 모드로 점유되어야 함

- 프로세스는 최소한 하나의 자원을 점유한 채 현재 다른 프로세스에 의해 점유된 자원을 추가로 얻기 위하여 반드시 대기해야 함

- 자원들은 서로 순환대기해야 함

 

스택

- 프로세스 스케쥴링에 사용되는 가장 적합한 자료구조

 

세마포 (Semaphore)

- 두 개 이상의 프로세스가 임계 영역(critical section)에 접근하여 공유 변수를 변경하면 race condition 때문에 정확한 값이 나오지 않음. 이를 해결하기 위하여 semaphore를 사용

- 임계 구역 문제를 해결하기 위한 동기화 도구

- S는 초기화를 제외하고 wait()과 signal()로만 접근 가능

- S의 값을 변경하는 연산은 반드시 분리되지 않고 수행되어야 함

 

인터럽트

- 입/출력 처리 장치가 해당 입/출력을 완료하였을 때 이를 운영체제에게 알리는 방법

 

전역 변수들

- 프로세스로부터 파생된 쓰레드들 사이에 공유되는 것

 

프로세스가 교착 상태에 빠지는 조건

- 대기 조건 : 적어도 하나 이상의 자원을 할당받은 채 다른 프로세스의 자원이 해제되기를 기다리는 프로세스가 존재

- 비선점 조건 : 자원은 사용이 끝날 때까지 이들을 갖고 있는 프로세스로부터 제거될 수 없음

- 환형 대기 조건 : 프로세스의 환형 사슬이 존재해서 이를 구성하는 각 프로세스는 사슬 내의 다음에 있는 프로세스가 요구하는 하나 또는 그 이상의 자원을 가지고 있는 조건 

 

워킹 세트

- Denning에 의해서 제안된 모델

- 페이징 기법 하에서 프로그램 동작에 대한 이론을 정립한 것

- 가상기억장치 관리에 있어 페이지

- 부재 비율을 감소시키기 위한 기법

- 프로그램이 효율적으로 실행되기 위해서는 프로세스가 자주 참조하는 페이지의 집합은 주기억장치 내에서 유지되어야 한다는 사상을 가진 기법

 

독립적 프로세스의 특징

- 프로세스의 상태는 다른 프로세스에 의해서 공유되지 않음

- 프로세스 실행 결과는 입력 상태에 의해서만 결정

- 프로세스 실행 결과는 같은 입력에 대하여 항상 동일

 

메시지의 임시 저장을 위한 큐를 구현하는 방식

- 무용량

- 유한 용량

- 무한 용량

 

PCB에 저장되는 정보

- CPU 스케쥴링 정보 : 프로세스 우선 순위, 스케쥴 큐에 대한 포인터 매개변수를 포함

 

다중 쓰레드 모델 중 커널 쓰레드에 대한 설명

- 커널은 각 쓰레드를 스케쥴링 가능한 객체로 인식

- 프로세스 자원을 휙득하기 위하여 시스템 레벨에서 경쟁

- 사용자 쓰레드에 비해 더 많은 병렬성 제공

 

SPN (Shortest Process Next) 스케줄링

- 총 실행 시간이 가장 짧은 프로세스부터 스케줄링하는 기법

- nonpreemptive scheduling

 

문맥 교환 (Context Switching)

- 다중 프로그래밍 시스템에서 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위하여 이전의 프로세스 상태를 보관하고 새로운 프로세스의 상태를 적재하는 작업

- 수행중인 프로세스가 다른 프로세스에게 CPU의 사용 권한을 부여하기 위하여 현재의 프로세스 상태를 저장하고 새로운 프로세스에게 CPU의 사용 권한을 넘기는 작업

 

프로그램 카운터

- 프로그램 수행을 제어하는 명령어 실행 순서, 즉 인터럽트 발생 시 다음에 실행할 명령어의 주소를 저장하는 것

 

스풀링

- 컴퓨터 처리 속도와 프린터의 처리 속도 차이의 보완을 위하여 디스크의 일정 공간을 사용하는 보완 기법

 

 

 

728x90
반응형