기억장치 관리 전략
반입전략 - 요구반입, 예상반입
배치전략 - 최초적합, 최적적합, 최악적합
교체전략 - FIFO, OPT, LRU, LFU, NUR, SCR 등
단편화 해결 방법
- 통합기법 : 인접해 있는 단편화
- 집약기법 : 분산되어 있는 단편화
주기억장치 할당 기법
연속할당 기법
- 단일 분할 할당 : 스와핑, 오버레이
- 다중 분할 할당 : 고정분할, 가변분할
분산할당 기법
- 페이징 기법
- 세그먼테이션 기법
가상기억장치 성능에 영향 미치는 요인
- 워킹셋(Working Set) : 자주 참조하는 페이지들의 집합 -> 주기억장치에 상주시킴
- 스레싱(Thrashing) : 프로세스 처리 시간보다 페이지 교체 시간이 더 많아지는 현상
- 구역성(Locality, 국부성) : 일부 페이지만 집중적으로 참조하는 성질
- 시간 구역성 : 최근 참조된 기억장소가 가까운 장래에도 계속 참조될 가능성이 높다
- 공간 구역성 : 하나의 기억장소가 참조되면 그 근처의 기억장소가 계속 참조될 가능성이 높다.
페이지 교체 알고리즘
- FIFO : First In First Out, 가장 먼저 들어온 페이지 먼저 교체
- OPT : OPTimal replacement, 최적 교체, 앞으로 가장 오랫동안 사용하지 않을 페이지 교체, 실현 가능성X
- LRU : Least Recently Used, 최근에 가장 오랫동안 사용하지 않은 페이지 교체, 가장 오래 전에 사용된 페이지 교체
- LFU : Least Frequently Used, 사용 횟수 가장 적은 페이지 교체
- NUR : Not Used Recently, 최근에 사용하지 않은 페이지 교체, 가장 우선적 교체 대상 - 참조도 변형도 안 된 페이지
디스크 스케줄링
- FCFS (FIrst Come First Seek) : 들어온 순서대로 탐색
- SSTF (Shortest Seek Time First) : 탐색 거리가 가장 짧은 트랙
순서 중요X
현재 헤드 위치에서 가장 가까운 트랙
헤드에서 멀리 떨어진 요청은 기아상태 발생 가능
응답시간의 편차 큼-> 대화형 시스템에 부적합
일괄처리 시스템에 유용
- SCAN : 한 방향으로 가장 짧은 거리
끝까지 이동한 후 역방향의 요청사항 서비스
끝까지 이동하지 않을 경우 - LOOK기법
- C-SCAN : 바깥->안 가장 짧은 거리, 항상 바깥쪽에서 안쪽으로 스캔
끝까지 이동하지 않을 경우 - C-LOOK 기법
- N-step SCAN : SCAN의 무한 대기 발생 가능성 제거
진행 중에 새로 추가된 요청은 서비스하지 않고 다음 진행 시에 서비스하는 디스크 스케줄링
스풀링(Spooling)
: 다중 프로그래밍 환경 하에서 용량이 크고 신속한 액세스가 가능한 디스크를 이용하여 각 사용자 프로그램의 출력할 데이터를 직접 프린터로 보내지 않고 디스크에 모았다가 한꺼번에 출력
-> 프린터 장치의 공유 및 프린터 처리 속도 보완하는 기법
* 스풀링, 버퍼링 비교
공통점 : 저속의 입출력장치와 고속의 CPU간의 속도 차이를 해소하기 위해 나온 방법
차이점
- 스풀링 : 디스크 이용
- 버퍼링 : 주기억장치 이용
문맥교환(Context Switching)
다중 프로그래밍 시스템에서 운영체제에 의하여 중앙처리장치가 할당되는 프로세스를 변경하기 위하여 현재 중앙처리장치를 사용하여 실행되고 있는 프로세스의 상태 정보를 저장하고, 앞으로 실행될 프로세스의 상태 정보를 설정한 다음에 중앙처리장치를 할당하여 실행이 되도록 하는 작업
-> 운영체제에서 overhead의 큰 요인 중 하나
환경변수
: 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임
- 변수명 = 값
- 시스템의 기본 정보 저장
- 환경변수는 자식프로세스에 상속된다.
- 시스템변수, 사용자 변수
시스템 변수 : 시스템 전체 영향
사용자 변수 : 사용자 계정에만 영향
환경변수 왜 사용?
PATH 환경변수 : 실행 파일을 찾는 경로
PATH 환경변수 값 확인
- DOS/Windows : 명령 프롬프트에서 echo %path% 입력
- Unix/Linux : Shell 프롬프트에서 echo $path 입력
PATH 환경변수 값 설정
- DOS/Windows : SET 변수=값 (SET 명령어를 변수 없이 사용하면 모든 환경변수와 값을 보여 줌)
- Unix/Linux : env.set.printenv (명령어를 변수 없이 사용하면 모든 환경변수와 값을 보여 줌)
Windows 주요 환경 변수 |
Linux / UNIX 주요 환경 변수 |
-변수명 앞뒤에 % 입력해야 함 |
- 변수명 앞에 $ 입력해야 함 $PATH - 실행 파일을 찾는 경로 $DISPLAY - 현재 X윈도(GUI) 디스플레이 위치/식별자 $HOME - 사용자 홈 디렉토리 $HOSTNAME - 호스트 이름 (현재 사용 중인 컴퓨터 이름) $PS1 - 쉘 프롬프트 설정값 (윈도우즈의 명령 프롬프트) $PWD - 현재 작업 디렉토리 $SHELL - 사용하는 쉘 프로그램 이름 $TERM - 터미널 종류의 이름, 쉘은 터미널로 연결해서 수행 $MAIL - 메일이 저장된 파일의 경로 $MAILCHECK - 메일의 도착 여부 검사하는 시간 간격 $LANG - 프로그램 사용 시 기본적으로 지원되는 언어 $USER - 사용자 이름 |
Shell Script (운영체제 기본 명령어)
운영체제 제어 방법
- 1. CLI : 사용자가 직접 명령어 입력하여 컴퓨터에게 명령 내리는 방식
- 2. GUI : 마우스로 화면 클릭하여 컴퓨터 제어하는 방식
오픈 소스 기반의 개발환경이 급격히 늘어나며 GitHub 등의 사용 중요해짐
-> CLI는 Git과 GitHub를 통한 소스 관리에 유용
windows 주요 명령어
dir : 파일 목록 표시 (directory)
copy : 파일 복사
type : 파일 내용 확인
ren : 파일 이름 변경 (rename)
del : 파일 삭제
attrib : 파일 속성 변경
find : 파일 찾기
move : 파일 이동
comp : 파일들 비교
md : 디렉토리 생성 (make directory)
cd : 디렉토리 위치 변경 (change directory)
chkdsk : 디스크 상태 점검
format : 디스크 초기화 (디스크 표면을 트랙과 섹터로 나눔)
cls : 화면의 내용 지움 (clear screen)
exit : cmd.exe 프로그램 종료
TCP/IP 프로토콜
: 서로 다른 기종의 컴퓨터들이 데이터를 주고 받을 수 있도록 하는 인터넷 표준 프로토콜
- TCP, IP, UDP, ICMP, ARP, RARP 등 관련된 프로토콜 통칭
- TCP와 UDP로 구분되는 프로토콜은 트랜스포트 계층에서 응용계층과 인터넷 계층 사이의 통신 담당
OSI 7계층 | TCP/IP | 기능, 종류 |
응용 표현 세션 |
응용 | HTTP, TELNET, FTP, SMTP, SNMP, DNS |
전송 | 전송 | TCP, UDP |
네트워크 | 인터넷 | IP, ICMP, IGMP, ARP, RARP |
데이터링크 물리 |
네트워크 액세스 | IEEE802, Ethernet, HDLC, X.25, RS-232C, ARQ |
TCP, UDP 비교
- TCP(Transmission Control Protocol)
: 가상 회선 연결 형태 -> 신뢰성(안정성) 높음, 패킷의 다중화, 순서제어, 오류제어, 흐름제어 기능
- UDP(User Datagram Protocol)
: 비연결형 -> 신뢰성 낮음, 속도 빠름(실시간 전송 유리)
TCP 흐름 제어 기법
: 송, 수신측 사이에 전송되는 패킷의 양, 속도 규제
1. 정지 및 대기 (stop-and-wait)
: 수신측의 확인신호(ACK)를 받은 후 다음 패킷 전송 (한 번에 하나의 패킷 전송 -> 오버헤드 큼)
- 에러 발생 유무 신호(긍정 : ACK, 부정 : NAK)
2. 슬라이딩 윈도우 (sliding window)
: 한 번에 여러 패킷(프레임)을 전송할 수 있어 전송효율 좋음
- 긍정수신응답(ACK) 전달된 경우 윈도우 크기 증가
- 부정수신응답(NAK) 전달된 경우 윈도우 크기 감소
TCP 혼잡 제어 기법
: 트래픽이 붕괴되지 않도록 패킷의 흐름을 제어하는 트래픽 제어
1. AIMD
: 패킷이 문제없이 도착하면 혼잡 윈도우 크기 1 증가, 혼잡현상 발생하면 혼잡 윈도우 크기 반으로 줄임
2. Slow Start
: 패킷이 문제없이 도착하면 윈도우 크기 패킷마다 1씩 증가, 혼잡현상 발생하면 혼잡 윈도우 크기 1로 줄임
교착상태(Dead Lock) : 예측 못한 다운
- 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
※ 교착상태 발생 4가지 필요충분 조건
1. 상호배제 : 한 번에 한 개의 프로세스만이 공유 자원을 사용 가능
2. 점유와 대기 : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원 추가 점유하기 위해 대기하는 프로세스 있어야 함
3. 비선점 : 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음
4. 환형대기 : 공유자원과 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
-> 해결방안
1. 예방기법 : 교착 상태 발생의 4가지 조건 중에서 어느 하나를 제거(부정)
2. 회피기법 : 교착 상태 가능성을 피해가는 방법. ex) 은행가 알고리즘
3. 발견기법 : 교착 상태에 있는 프로세스와 자원 발견
4. 회복기법 : 교착 상테의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복
'정보처리기사 > 요약정리' 카테고리의 다른 글
실기 단어 정리 (0) | 2020.10.12 |
---|---|
[실기핵심요약] - 응용 SW 기초 기술 활용 (0) | 2020.10.10 |
[실기핵심요약] - SQL 응용 (0) | 2020.10.09 |
[필기핵심요약] - 화면 설계 (0) | 2020.10.06 |
[필기핵심요약] 서버프로그램 구현 - 디자인패턴 (0) | 2020.10.05 |