Just do IT
article thumbnail

지역성 (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. 네트워크 기초 활용

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!