최초 작성일: 2024-10-11
최종 작성일: 2024-10-11
목표 : 정처기 합격 및 CS 지식 쌓기
운영체제 – 메모리 관리 ( 주기억 장치에 있어야 cpi가 처리 가능)
1. 기억장치 관리 전략
(1) 개념 : 보조기억장치에 저장된 프로그램이나 데이터를 주기억장치에 언제, 어디에 적재할지 결정하는 방법
(2) 기억장치 관리 전략
1) 반입(fetch) 전략
언제 주기억 장치로 적재할 것인지를 결정하는 전략
요구반입(내가 요구를 했을 때 반입)/ 예상반입
2) 배치(placement)전략
주기억 장치의 어디에 위치시킬 것인지를 결정하는 전략
최초 적합(first fit), 최적 적합(best fit, 내부 단편화), 최악 적랍(worst fit)
3) 교체(replacement) 전략
새로운 프로그램이나 데이터를 위해 어떤 영역을 교체할지 결정하는 전략
FIFO, OPT, LRU, LFU, NUR, SCR
2. 주기억 장치 할당 기법
(1) 단일 분할 할당 기법
경계 레지스터를 사용해 운영체제 영역과 사용자 영역을 구분한다
-오버레이(Overlay) : 필요한 조각만을 순서대로 주기억장치에 적재
-스와핑(Swapping) : 필요에 따라 다른 프로그램과 교체하는 기법
(2) 다중 분할 할당 기법
주기억장치를 여러 영역으로 나누어 프로그램을 할당한다
고정 분할과 가변 분할 기법이 있다
3. 단편화
(1) 개념 : 주기억장치에 프로그램 할당과 반납 과정에서 발생하는 빈 공간
(2) 단편화 종류
내부 단편화
외부 단편화 : 요고 좀 헷갈리니 확인 필요
(3) 단편화 해결 방법
통합(coalescing) 기법 : 인접한 빈 분할 공간을 합침
압축(compaction) 기법 : 분산된 여러 단편화된 공간을 합침 (압축 후 주소 재 설정 필요 -> 재배치)
재배치 기법(relocation) : 프로그램의 주소를 새롭게 지정해주는 기법
운영체제 – 가상 기억 장치
1. 가상기억장치 ( 보조기억장치가 주기억 장치보다 용량이 큼. 그래서 보조기억장치의 일부를 마치 주기억장치처럼 사용하는 기법. 물론 주기억 장치처럼 사용할 수는 없음)
(1) 개념 : 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 기법
(2) 블록분할 방법 (보조기억장치를 어떻게 분할 할 것인가)
1) 페이징 기법
가상기억장치를 모두 같은 크기의 블록(페이지)으로 편성하여 운영하는 기법
내부 단편화 발생
2) 세그멘테이션 기법
가상 메모리를 크기가 다른 논리적 단위인 세그먼트로 분할하고 메모리를 할당하는 기법
외부 단편화 발생
l 프로세스의 경우, 1) 코드 영역(프로그램) 2) 데이터 영역 (전역변수, 정적변수)3) 힙 영역(동적변수) 4) 스택 영역(지역변수)이 있음 코드, 데이터, 힙 영역은 스레드 들이 공유를 하고 스택은 스레드 각각이 가지고 있음.
2. 가상기억장치 기타 관리 사항
(1) 페이지 부재
프로세스 실행 중 필요한 페이지가 주기억장치에 없는 상황
(2) 지역성(locality)
프로세스가 실행되는 동안 주기억장치에서 일부 페이지만 집중적으로 참조하는 성질
-시간 구역성 : loop(반복), stack, 부 프로그램(sub program) 등
-공간 구역성: 배열 순회, 순차적 코드 실행 등
(3) 워킹 셋 (<- 지역성)
프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
(4) 스래싱
프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아 지는 현상
3. 페이지 교체 알고리즘
(1) FIFO : 가장 먼저 적재된 페이지를 교체
(2) OPT(Optimal Replacement, 최적 교체) : 미래에 가장 오랫동안 사용되지 않을 페이지를 교체
(3) LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지를 교체
(4) LFU(Least Frequently Used) :사용 빈도가 가장 적은 페이지를 교체
(5) NUR(Not Used Recently) : 참조 비트와 변형 비트를 사용하여 최근 사용여부를 확인 (참조했고 변형 한거는 변경 안하는 것)
(6) SCR(Second Chance Replacement) : FIFO의 단점을 보완한 기법
운영체제 – 프로세스
1. 프로세스
(1) 개념 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
(2) 스레드 ( 경량 프로그램, 코드,데이터 힙은 프로세스 상 스레드가 공유되고 있고 스택은 스레드 마다 가지고 있음)
1) 스레드의 개념 : 프로세스 내에서 실행되는 흐름의 단위 / 사용자 수준의 스레드, 커널 수준의 스레드가 있음
(3) 메모리 상의 프로세스 영역
- 코드 영역 : 실행할 프로그램의 코드가 저장
- 데이터 영역 : 전역변수와 정적 변수
- 힙 영역 : 동적 할당
- 스택 영역 : 지역변수와 함수의 매개변수
(4) 프로세스 상태 전이
생성(NEW) -> 준비(READY) -> 실행(RUN) -> 종료(EXIT)
대기(WAIT)
프로그램은 준비와 실행 상태로 왔다갔다
준비 -> 실행 : 디스패치
실행 -> 준비 : TIME RUN OUT
대기 -> 생성 : WAKE UP
(5) PCB (Process Control Block , 프로세스 제어 블록)
PCB는 운영체제가 프로세스의 정보를 저장하는 공간
(6) 문맥교환(PCB가 있어서 가능)
준비 -> 실행 -> 준비 로 가는 경우, 다음 것이 들어오는 데 다음 것이 얼마나 진행 되었는지 확인 해야하는 데 그런 정보를 문맥 교환에 저장함
하나의 프로세스가 CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정
2. 프로세스 스케쥴링
(1) 개념 : 메모리에 올라온 프로세스 들 중 어느 프로세스를 먼저 처리하지 순서를 정하는 것이다
(2) 목적
공평성
효율성
안정성
반응 시간 보장
무한 연기 방지
(3) 스케쥴링 기법
1) 선점형 스케쥴링 기법
운영체제가 실행중인 프로세스로부터 CPU를 강제로 빼앗을 수 있는 방식
종류: Round Robin(순서대로), SRT(실행시간이 짧은 것 부터), 다단계 큐(MLQ,multi level que), 다단계 피드백 큐(MFQ,multi-level feedback queue, 들어오면 가장 앞에 있는 큐에 하당)
2) 비선점형 스케쥴링 기법
프로세스가 CPU를 점유 하고 있다면 이를 빼앗을 수 없는 방식
종류 : FCFS, SJF, HRN, 우선순위, 기한부 등
3) 기아 현상과 에이징 기법
기아현상 : 우선순위가 낮은 프로세스가 무한정 기다리는 현상 – RR, SRT, MLQ, SJF, 우선순위
에이징 기법 : 기아 현상을 해결하기 위한 기법 – MLFQ, HRN
3. 스케쥴링 알고리즘
(1) 선점형 기법
1) Round Robin : 시간 단위를 정하여 순서대로 cpu에 할당
2) SRT(Shortest Remaining Time) : 실행시간이 가장 짧은 프로세스에 cpu 하당 -> 기아 상태
3) 다단계 큐 : 그룹에 따라 다른 준비 상태 큐를 사용하는 기법 -> 기아 상태
4) 다단계 피드백 큐 : 가장 높은 우선순위의 준비 큐에 등록 (에이징 기법 적용)
(2) 비 선점형 기법
1) FCFS : 먼저 도착한 프로세스를 먼저 처리
2) SJF : 실행 시간이 짧은 프로세스에 CPU를 할당
3) HRN(Highest Response Ratio Next) : 우선순위 = (대기 시간 +실행시간)/ 실행시간
4) 우선순위 : 프로세스에 우선순위를 부여
5) 기한부 : 일정한 시간을 주어 그 시간 안에 작업을 완료하도록 하는 것
운영체제 – 병행 프로세스와 교착 상태
1. 병행 프로세스
(1) 개념 : 두개 이상의 프로세스가 동시에 존재하여 실행 상태에 있는 것
(2) 문제점과 해결책
1) 문제점 : 동시에 여러 프로세스를 처리할 때 한정된 자원에 대한 사용순서 등의 문제가 발생할 수 있다
2) 문제 해결 책
- 임계 구역 : 한번에 하나의 프로세스만이 접근할 수 있도록 지정된 영역
- 상호배제기법 : 공유 공간을 사용 중일 때 사용하지 못하도록 하는 제어 기법( 임계 구역 활용)
- 동기화 기법 : 하나의 자원에 대한 권한/ 순서를 조정해주는 기법
2. 병행 프로세스 문제 해결 책
(3) 상호 배제
상호 배제 기법
데커의 알고리즘
피터슨의 알고리즘
다익스트라 알고리즘
램포트의 베이커리 알고리즘
(4) 동기화 기법
1) 세마포어 : 프로세스에 제어신호를 전달하여 순서대로 작업을 수행하도록 하는 기법 / 종류 : 계수 세마포어, 이진 세마포어
2) 모니터 : 프로그래밍 언어 수준에서 동시성을 제어하는 상호 배제 기법
3. 교착 상태(Dead Lock)
(1) 개념 : 상호 배제에 의해 나타나는 문제점으로, 여러 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스의 자원을 요구하며 무한정 기다리는 현상
(2) 교착 상태 발생 조건
-상호 배제(mutual exclusion) : 한번에 한 개의 프로세스만이 공유자원을 사용하도록 함
- 점유와 대기 : 자원을 점유하면서 다른 프로세스의 자원을 요구
- 비선점 : 할당된 자원은 사용이 끝날 때 까지 강제적으로 빼앗을 수 없음
-환형 대기 : 순차적으로 다음 프로세스가 요구하는 자원을 가지고 있는 상태( 차가 꽉 막힌 상태로 보면 됨)
(3) 교착 상태 해결 방법
예방기법 (prevention)
회피 기법(avoidance) – 은행가 알고리즘 (은행에서 10억 가지고 있으면 사람들에게 적절하게 나눠져야 함)
발견 기법 (detection)
회복 기법 (recovery)
운영체제 – 디스크 스케줄링
1. 디스크 스케줄링 ( 사용자가 데이터를 요청하면 운영체제가 해당 데이터를 찾아가는 것으로 어떻게 하면 최적으로 찾아갈 수 있는지)
(1) 개념 : 하드 디스크에 저장된 데이터에 접근하기 위해 디스크 헤드의 움직임을 최적화 하는 기법
(2) 디스크 스케줄링 종류
1) FIFS – 정렬 안함
요청이 들어온 순서대로 처리
2) Shortest Seek Time First – 정렬함
현재 헤드에서 가장 가까운 트랙의 요청을 처리
3) SCAN – 정렬 함 (엘리베이터 알고리즘)
헤드가 진행 방향에 있는 요청을 처리하고 반대 방향으로 틀어 반대 방향의 요청 들을 처리
4) C-SCAN – 정렬함
항상 한방향에서 반대 방향으로 진행하며 트랙의 요청을 처리
5) LOOK – 정렬함(SCAN과 C-SCAN의 단점이 앞 끝의 요청이 없더라도 끝까지 감)
SCAN 기법을 기초로 하며, 진행 방향의 마지막 요청을 처리한 후 반대 방향으로 처리
6) C-CLOOK – 정렬함
C-SCAN 기법을 기초로 하며, 한쪽 방향의 요청을 처리한 후 반대쪽 끝으로 이동 후 다시 한쪽 방향으로 처리
7) N-STEP SCAN
SCAN 기법을 기초로 하며, 대기 중인 요청을 우선적으로 처리하고, 처리과정중에 들어오는 요청은 이후 진행 시 처리
8) 에션 바흐 기법
부하가 큰 항공 예약 시스템을 위해 개발된 기법으로 탐색 시간과 회전 지연 시간을 최적화 하는 데 사용
운영변수 – 환경변수와 로그 파일
1. 환경변수
(1) 개념 : 환경 변수를 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임( 초기 설정값?)
(2) UNIX/LINUX 환경 변수 : env, set, printenv, export
2. 로그 파일
(1) 로그의 개념 : 시스템의 모든 기록을 담고 있는 데이터 ( 파일)
(2) 리눅스 로그 종류
Message : 시스템 로그 파일
Secure : 보아인증에 관한 메시지 로그 파일
Mailog : 메일 로그 파일
Xferlog : ftp 로그 파일
Wtmp : 전체 로그인 기록
Utmp : 현재 로그인 사용자 기록
Btmp : 로그인 실패 정보 기록
Lastlog : 최근 로그인 기록
Dmesg : 부팅 시의 시스템 로그
운영체제 – 스토리지
1. 스토리지
(1) 개념 : 데이터를 저장하는 저장소로서 컴퓨터 시스템의 부품
(2) 스토리지 종류
DAS(Direct Attached ) : pc나 서버에 직접 연결
NAS (network ) : LAN을 통해 서버와 연결
SAN (Storage area) : 파이버 채널 스위치를 통해 연결(고속으로 데이터를 주고받을 수 있음)
(3) RAID(Reducdant Array of Inexpensive Disks)
1) RAID의 개념 : 복수의 HDD를 하나의 드라이브로 인식하고 사용 (오류가 나면 안되니까)
2) RAID 구성
-스트라이핑 : 연속된 데이터를 여러 디스크에 라운드 로빈 방식으로 저장(여러 디스크 중에 하나 고장나면 전체 디스크를 사용 못함)
-미러링 : 데이터를 동일하게 복제해 신뢰성을 확보
3) RAID 형태
RAID – 0 : 스트라이핑 사용
RAID – 1 : 미러링 사용
RAID – 2 : 오류 정정을 위한 해밍코드 사용
RAID- 3 : 한 디스크를 패리티 정보 저장용으로 사용
RAID -4 : RAID-3과 유사하나 블록 단위 분산
RAID -5 : 각 디스크에 패리티 정보 포함
RAID- 6 : 두개의 패리키 정보를 디스크에 분산 저장
'스터디스터디 > 정처기' 카테고리의 다른 글
[실기] 네트워크 (5) | 2024.10.12 |
---|---|
/wip/[실기] 네트워크 (0) | 2024.10.11 |
/wip/ [실기] 운영체제 (0) | 2024.10.11 |
[실기] 데이터베이스 (14) | 2024.10.09 |
[실기] 소프트웨어공학(3/3) (8) | 2024.10.07 |