지역성 (Locality)
- 지역성 (국부성, 구역성, 국소성)
- 프로세서들은 기억장치 내의 정보를 균일하게 접근하는 것이 아니라 어느 한 순간에 특정 부분을 집중적으로 참조
- 시간 지역성: 순환, 부 프로그램, 스택 등
- 공간 지역성: 순차적 코드 실행
- 유형: 시간 지역성, 공간 지역성, 순차 지역성
현상유형 | |
유형 | 설명 |
지역성 Locality |
- 프로세스가 실행되면서 하나의 페이지를 일정시간 동안 집중적으로 엑세스 하는 현상 |
스레싱 Thrashing |
- 프로세스의 처리 시간보다 페이지 교체 시간이 더 많아지는 현상 |
워킹 셋 Working Set |
- 프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합 |
프리페이징 Prepaging |
- 시용될 페이지라고 예측되어지는 페이지를 미리 적재하는 것 |
프로세스 (Process)
1) 프로세스 상태의 종류
- 생성(Create)
- 준비(Ready)
- 실행(Running)
- 대기(Waiting)
- 완료(Complete)
- Exit
2) 프로세스 상태 전이
- 디스페치(Dispatch)
- 할당 시간 초과(Timeout)
- 입출력 발생(Block)
- 깨움(Wake-up)
3) 프로세스 구성요소
- 사용자 작성 코드
- 사용자 사용 데이터
- 스텍 (Stack)
- 프로세스 제어 블록 (PCB: Process Control Block)
4) PCB 구성요소
- PID (프로세스 식별자)
- 프로세스 상태
- 프로그램 카운트
- 레지스터 저장 영역
- 프로세서 스케줄링 정보
- 계정 정보
- 입출력 상태 정보
- 메모리 관리 정보
스레드 (Thread)
- 프로세스보다 가벼운 독립적으로 수행되는 순차적인 제어의 흐름, 실행 단위
- 하드웨어, 운영체제의 성능과 응요 프로그램의 처리율 향상
- 그들이 속한 프로세스의 자원과 메모리 공유
- 다중 프로세스 구조에서 각 스레드는 다른 프로세스에서 병렬로 실행
- 한 개의 프로세스는 여러 개의 스레드 소유 가능
프로세스 스케줄링
- CPU를 사용하려고 하는 프로세스들 사이의 우선순위 관리
- 유형: 선점형 스케줄링(Preemptive Scheduling), 비선점형 스케줄링(Non Preemptive Scheduling)
1) 선점 스케줄링 알고리즘
유형 | 설명 |
라운드 로빈 | - RR: Round Robin - 시간 할당이 작아지면 프로세스-문맥 교환이 자주 일어남 - Time Sharing System을 위해 고안된 방식 - 시간 할당이 커지면 FCFS 스케줄링과 같은 효과 가능 |
SRT | - Shortest Remaining Time First - 짧은 수행 시간 프로세스 우선 수행 - 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용 가능 |
다단계 큐 | - MLQ: Multi Level Queue - 독립된 스케줄링 큐 |
다단계 피드백 큐 | - MFQ: Multi-Level Feedback Queue - FIFO+RR의 혼합, 마지막 단계는 RR로 처리 |
2) 비선점 스케줄링 알고리즘
- 우선순위 (Priority)
- 기한부 (Deadline)
- HRN (Highest Response Raio Next)
- FCFS (First Come First Service)
- SJF (Shortest Job First)
유형 | 동작 방식 | 특징 |
우선순위 | - Priority - 각 프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU 할당 - 동일 순위는 FCFS로 처리 |
- 주요/긴급 프로세스에 대한 우선적 처리 |
FCFS | - First Come First Service - 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당 - FIFO 알고리즘 |
- 도착한 순서대로 처리 |
SJF | - Shortest Job First - 프로세스가 도착하는 시점에 따라 그 당시가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유 |
- 기아 현상 발생 가능 |
교착상태
- 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 지원할당을 무한정 대기하는 상태
- 발생 조건
> 상호배체 (Mutual Exclusive)
> 점유와 대기 (Block & Wait)
> 비선점 (Non Preemption)
> 환형 대기 (Circular Wait)
1) 해결방법
해결 방법 | 세부 기법 |
예방 | - Prevention - 점유 자원 해제 후 새 자원 요청 |
회피 | - Avoidance - 은행가 알고리즘 (Banker's Algorithm), Wound-Wait, Wait-Die |
발견 | - Detection - 자원할당 그래프, Wait for Graph |
복구 | - Recovery - 프로세스 Kill, 자원선점 |
환경 변수
- Environment Variable
- 프로세스가 컴퓨터에서 동작하는 방식에 많은 영향을 미지는 동적 값들의 모임
UNIX의 쉘(Shell)
- 명령어 해석기이다
- 시스템과 사용자 간의 인터페이스 담당
- 여러 종류의 쉘
- 환경변수 출력하는 명령어: printenv, env, setenv
1) 쉘 스크립트 (Shell Script)
- 쉘이나 명령 중 인터프리터에서 돌아가도록 작성되었거나 운영체제를 위해 사용되는 스크립트
- 기능: 파일 이용, 프로그램 실행, 문자열 출력 등
운영체제 기본 명령어
방식 | 설명 |
CLI | - Command Line Interface - 사용자가 직접 명령어를 입력, 컴퓨터에게 명령을 내리는 방식 |
GUI | - Graphical User Interface - 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식 |
리눅스/유닉스 계역 운영체제의 기본 명령어
- 명령어는 쉘(Shell)에서 입력
- 최상위 유저(root)를 CLI 환경에서 #으로 표시, 일반유저를 $로 표시
- 예) [root@localhost~]#명령어 / [user@localhost~]$명령어
구분 | 명령어 | 설명 |
사용자 | cat | - 파일 내용 출력 |
uptime | - 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인 | |
id | - 사용자의 로그인명, id, 그룹id 등을 출력 | |
last | - 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보 표시 | |
who | - 호스트에 로그인한 사용자 정보 출력 | |
파일처리 |
ls | - 자신이 속해있는 폴더 내에서의 파일 및 폴더들 표시 |
pwd | - print working directory / 현재 디렉터리(현재 사용자의 위치)의 절대 경로 출력 | |
rm | - 파일 삭제 | |
cp | - 파일 복사 | |
mv | - 파일 이동 | |
프로세스 | ps | - 현재 실행되고 있는 프로세스 목록 출력 |
pmap | - 프로세스 ID를 기준으로 메모리 맵 정보를 출력 | |
kill pid | - 특정 프로세스 종료 | |
fork | - 특정 프로세스 생성 | |
파일권한 | chmod | - 특정 파일 또는 디렉토리의 한 수정 |
chown | - 파일이나 인터페이스를 설정하거나 확인 (소유권 수정) | |
네트워크 | ifconfig | - 네트워크 인터페이스를 설정하거나 확인 |
host | - 도메인(호스트)명은 알고 있는데 ip 주소를 모르거나 혹은 그 반대의 경우에 사용 | |
압축 | tar | - 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용 |
gzip | - 파일을 묶거나 풀 수는 없지만 압축을 담당 | |
검색 | grep | - 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용 |
find | - 특정한 파일을 찾는 명령어 | |
디스크 사용 |
df | - 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용 |
du | - 파일 사이즈를 kbyte단위로 출력 | |
디렉터리 이동 |
cd | - 디렉터리를 이동 |
정리하기
1. 지역성 (Locality)
- 유형: 시간 지역성, 공간 지역성, 순차 지역성
- 현상유형: 지역성 (Locality), 스레싱 (Thrashing), 워킹 셋 (Working Set), 프리페이징 (Prepaging)
2. 프로세스 (Process)
- 상태종류: 생성/create, 준비/ready, 실행/running, 대기/waiting, 완료/complete, exit
- 상태전이: 디스패치, 할당 시간 초과, 입출력 발생, 깨움
3. 스레드 (Thread)
- 프로세스보다 가벼운 독립적으로 수행되는 순차적인 제어의 흐름, 실행 단위
- 한 개의 프로세스는 여러 개의 스레드 소유 가능
4. 프로세스 스케줄링
- CPU를 사용하려고 하는 프로세스들 사이의 우선순위 관리
- 유형
> 선점형 스케줄링(Preemptive Scheduling): 라운드로빈, SRT, 다단계 큐, 다단계 피드백 큐
> 비선점형 스케줄링(Non Preemptive Scheduling): 우선순위, 기한부, HRN, FCFS, SJF
5. 교착상태
- 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 지원할당을 무한정 대기하는 상태
- 발생 조건: 상호배체 (Mutual Exclusive), 점유와 대기 (Block & Wait), 비선점 (Non Preemption), 환형 대기 (Circular Wait)
- 해결방법: 예방/Prevention, 회피/Avoidance, 발견/Detection, 복구/Recovery
6. 환경변수 (Environment Variable)
- 프로세스가 컴퓨터에서 동작하는 방식에 많은 영향을 미지는 동적 값들의 모임
7. UNIX의 쉘(Shell)
- 명령어 해석기이다
- 환경변수 출력하는 명령어: printenv, env, setenv
8. 운영체제 기본 명령어
- CLI(Command Line Interface), GUI(Graphical User Interface)
9. 리눅스/유닉스 계열 운영체제 기본 명령어
- 최상위 유저(root)를 CLI 환경에서 #으로 표시, 일반유저를 $로 표시
- 예) [root@localhost~]#명령어 / [user@localhost~]$명령어
4. 네트워크 기초 활용
'정보처리기사 > 4과 프로그래밍 언어 활용' 카테고리의 다른 글
4. 네트워크 기초 활용 (0) | 2023.04.04 |
---|---|
3. 응용 SW 기초 기술 활용 (1) (0) | 2023.04.02 |
2. 프로그래밍 언어 활용 (0) | 2023.04.01 |
1. 서버프로그램 구현 (0) | 2023.03.31 |