14 운영체제
Section 1. 운영체제 기초
1. 기억장치
프로그램 깔면 하드디스크에 프로그램이들어감
실행하면 램이라는 주기억장치로
실행중프로그램을 프로세스라고함
씨피유는 프로세서(실행중프로그램처리장치)
기억장치들은
보조기억장치 하드디스크ssd 느림
주기억장치 ram 빠름
cpu .레지스터 캐시메모리
주기억장치도느려서 캐시메모리로보냄
램은 16기가32기가 하드디스크에비해용량작음
프로그램을 다올릴수없어서 하드디스크일부만빌리는걸 가상기억장치
⑴ 기억장치의 개념
- 데이터, 프로그램, 연산의 중간 결과 등을 일시적 또는 영구적으로 저장하는 장치
⑵ 기억장치의 종류
① 레지스터
- 중앙처리장치 내부에 존재하는 기억장치
② 캐시 메모리
- 중앙처리장치가 주기억장치에 접근할 때 속도 차이를 줄이기 위해 사용
③ 주기억장치
- 중앙처리장치가 직접 데이터를 읽고 쓸 수 있는 장치
■ 종류
종류
ROM (Read Only Memory)
RAM (Random Access Memory)
설명
- 읽기만 가능한 읽기 전용 메모리
- 비 휘발성 메모리
- 종류 : mask-ROM, PROM, EPROM, EEPROM
- 기억장소를 임의로 접근할 수 있는 메모리
- 읽고 쓰기가 가능한 휘발성 메모리
- SRAM : 전원이 공급되는 중에 내용이 사라지지 않음 (캐쉬메모리로 사용)
- DRAM : 일반적인 주기억장치로, 일정 시간이 지나면 내용이 사라지는 RAM
④ 보조기억장치
- 주기억장치에 비해 접근 시간은 느리지만 기억 용량이 크다.
- 종류 : HDD, SSD(Solid State Drive), CD, USB, 플로피 디스크 등
2. 시스템 소프트웨어
⑴ 시스템 소프트웨어의 개념
- 응용 소프트웨어를 실행하기 위한 플랫폼을 제공
⑵ 시스템 소프트웨어의 구성
① 제어 프로그램
- 감시 프로그램 (Superviosr Program)
- 작업관리 프로그램 (Job Control Program)
- 데이터 관리 프로그램
② 처리 프로그램
- 서비스 프로그램(Service Program)
- 문제 프로그램(Problem Program)
- 언어 번역 프로그램(Language Translator Program)
3. 운영체제
⑴ 운영체제의 개념
- 응용프로그램이 실행되는 과정에서 하드웨어들을 제어하여 응용프로그램을 실행시키고 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어
⑵ 운영체제의 기능
- 프로세스 관리
- 메모리 관리
- 파일 관리
- 입출력 관리
- 보조기억장치 관리
- 네트워킹
- 정보 보안 관리
- 명령해석 시스템
⑶ 운영체제 운용 기법
- 일괄 처리 시스템(batch processing system)
- 다중 프로그래밍 시스템(multi programming system)
- 시분할 시스템 (time sharing system)
- 다중 처리 시스템 (multi-processing system)
- 실시간 처리 시스템 (real time processing system)
- 다중 모드 시스템 (multi-mode system)
- 분산 처리 시스템(distribute processing system)
⑷ 운영체제 성능 평가 기준
■ 처리량(Throughput)
- 일정 시간 내에 시스템이 처리하는 일의 양
■ 반환시간(Turnaround Time)
- 요청한 작업에 대하여 결과를 돌려줄 때까지 소요되는 시간
- 대기시간 + 실행시간 + 응답시간
■ 신뢰도(Reliability)
- 작업의 결과가 얼마나 정확하고 믿을 수 있는가의 기준
■ 사용 가능도(Availability)
- 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
4. 운영체제의 종류
⑴ 윈도우(Windows)
- MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 운영체제
⑵ 리눅스(Linux)
- 1991년 리누스 토발즈에 의해 오픈소스로 개발된 유닉스 호환 OS
⑶ 유닉스(Unix)
① 유닉스 개요
- 1969년 미국 AT&T 벨연구소(Bell Lab.)가 개발한 공개형 오픈소스 운영체제(OS)
- 1969년 벨연구소 소속의 켄 톰슨(Ken Tompson)이 어셈블리 언어를 사용하여 개발했으며, 1972년 데니스 리치(Dennis Ritchie)가 C 언어를 사용하여 다시 작성
② Unix 시스템의 구성
■ 커널(Kernel)
- UNIX의 가장 핵심적인 부분
- 컴퓨터가 부팅될 때, 주 기억장치에 적재된 후 상주하면서 실행
■ 쉘(Shell)
- 명령어 해석기
- 시스템과 사용자 간의 인터페이스 담당
■ Utility Program
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용
- 에디터, 컴파일러, 인터프리터, 디버거 등
③ Unix 파일 시스템
■ Unix 파일 시스템의 구조
- 부트블록 : 부팅시 필요한 코드를 저장하고 있는 블록
- 슈퍼블록 : 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
- I-node 블록 : 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
- 데이터 블록 : 실제 파일에 대한 데이터가 저장된 블록
④ 파일 디스크립터 (FD, File Descriptor)
■ 파일 디스크립터 특징
- 유닉스 시스템에서 프로세스가 파일들을 접근할 때 이용
■ 파일 디스크립터 정보
- 파일 이름 및 파일 크기
- 보조기억장치에서의 파일 위치
- 파일 구조(순차파일/색인순차파일/색인파일 등)
- 보조기억장치의 유형(자기 디스크/자기테이프 등)
- 액세스 제어 정보
- 파일 유형(텍스트파일, 목적프로그램파일 등)
- 생성 날짜와 시간, 제거 날짜와 시간
- 최종 수정 날짜 및 시간
- 액세스한 횟수(파일 사용 횟수)
⑷ MacOS
- 애플사가 개발한 유닉스 기반의 운영체제
5. 운영체제의 명령어
⑴ Unix 주요 명령어
명령어
설명
access
파일의 접근 가능 여부 결정
chmod
파일 또는 디렉토리에 대한 접근권한을 변경
close
FCB(File Control Block)를 닫는다.
chgrp
파일의 그룹명 변경
chown
파일의 소유자 변경
chdir
디렉터리 변경 명령
mkdir
디렉터리 생성 명령
rmdir
디렉터리 삭제 명령
mount
umount
파일 시스템에 새로운 파일 시스템을 연결할 때 사용
파일 시스템에서 서브 디렉터리 제거시 사용
exit
프로세스 종료
kill
프로세스 제거
fork
getpid
getppid
sleep
uname
ps
exec
vi
새로운 프로세스를 생성, 복제하는 명령
자신의 프로세스 명, 그룹명, 부 프로세스의 정보를 얻는다.
부모 프로세스의 ID를 얻는다.
프로세스를 일정 시간 동안 중단
현재 운영체제의 버전 정보를 확인
프로세스 상태 출력
새로운 프로그램을 수행시키는 명령
편집기 명령어
cat
파일 내용을 화면에 출력
rm
파일이나 디렉터리 삭제
cp
파일을 복사
mv
파일 이동
grep
파일이나 프로세스를 찾는 명령
ls
파일 목록 확인
du
파일의 사용량 출력
finger
사용자 정보 표시
⑵ Linux, Unix 파일 접근 권한 관리
① 파일 확인 방법
- ls al 명령을 이용하여 파일의 상세정보 및 파일 접근 권한을 확인할 수 있다.
② 필드별 의미
1
2
3
4
5
6
7
8
9
10
-
R
W
-
R
-
-
R
-
-
■ 1번 필드 : 타입
- 파일 : - 디렉터리 : d
- 다른 파일을 가리키는 링크 : l
- 두 개의 프로그램을 연결하는 파이프 파일 : p
- 블록 단위로 하드웨어와 반응하는 파일 : b
- 스트림 단위로 하드웨어와 반응하는 파일 : c
■ 2~4번 필드 : 소유주(USER) 권한
■ 5~7번 필드 : 그룹(GROUP) 권한
■ 8~10번 필드 : 나머지(OTHER) 권한
③ 권한별 값
구분
값
설명
R
4
읽기 권한
W
2
쓰기 권한
X
1
실행 권한
-
0
권한 없음
④ 권한 변경
■ chmod 0751 file명
- 해당 파일에 대해서 소유주는 읽기, 쓰기, 실행 권한이 있다.
- 해당 파일에 대해서 그룹은 읽기, 실행 권한이 있다.
- 해당 파일에 대해서 나머지는 실행 권한이 있다.
■ chmod 0775 file명
- 해당 파일에 대해서 소유주는 읽기, 쓰기, 실행 권한이 있다.
- 해당 파일에 대해서 그룹은 읽기, 쓰기, 실행 권한이 있다.
- 해당 파일에 대해서 나머지는 읽기, 실행 권한이 있다.
⑤ umask (접근 권한 마스크)
- 앞으로 만들어질 파일 권한에 대한 설정
- umask 로 지정한 8진수는 새로 만들어질 파일에서 제거될 권한을 명시
■ umask 022
- 앞으로 만들어지는 파일은 644, 디렉터리는 755 권한을 가진다.
- 소유주는 읽기, 쓰기권한
- 그룹은 읽기 권한
- 나머지는 읽기 권한
⑥ chown (소유주 변경)
■ chown hungjik file명
- 해당 파일의 소유주를 hungjik 로 변경
Section 2. 메모리 관리
1. 기억장치 관리 전략
⑴ 기억장치 관리 전략의 개념
- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 위치 등을 지정하여, 한정된 주기억장치의 공간을 효율적으로 사용한다.
⑵ 기억장치 관리 전략
① 반입(Fetch) 전략
요구 반입 (Demand Fetch)
예상 반입 (Anticipatory)
- 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
- 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법
② 배치(Placement) 전략
최초 적합 (First Fit)
최적 적합 (Best Fit)
최악 적합 (Worst Fit)
- 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치
- 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
- 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치
③ 교체(Replacement) 전략
- 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
- 종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등
2. 단편화
⑴ 단편화의 개념
- 주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간
⑵ 단편화의 종류
① 내부 단편화
- 주기억장치 공간이 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남아있는 공간
② 외부 단편화
- 주기억장치 공간 보다 프로그램이 커서 프로그램이 할당될 수 없어 사용되지 않고 남아있는 공간
③ 단편화 계산
영역
분할 크기
작업 크기
단편화 크기
1
20K
10K
내부:10K
2
50K
60K
외부:50K
3
120K
160K
외부:120K
4
200K
100K
내부:100K
5
300K
150K
내부:150K
⑶ 단편화 해결 방법
① 통합(Coalescing) 기법
- 인접해 있다면 두 개의 빈 분할 공간을 하나로 통합하여 효율성을 높이는 작업
② 압축(Compaction) 기법
- 주기억장치 내 분산되어 있는 단편화 공간들을 통합하여 하나의 커다란 빈 공간을 만드는 작업
③ 재배치 기법(Relocation)
- 압축을 실행하여 이 과정에서 프로그램의 주소를 새롭게 지정해주는 기법
Section 3. 가상 기억 장치
1. 가상 기억 장치
⑴ 가상 기억 장치의 개념
- 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것
⑵ 블록 분할 방법
① 페이징(Paging) 기법
- 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법
- 주소 변환을 위해서 페이지 맵 테이블이 필요
■ 페이지 크기별 비교
페이지 크기
기억장소 효율
단편화
입출력 시간
맵 테이블
클수록
감소
증가
감소
감소
작을수록
증가
감소
증가
증가
② 세그먼테이션(Segmentation) 기법
- 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트로 분할하고 메모리를 할당하는 기법
- 아래 세그먼트 테이블에서 S=(2, 100) 의 실제 주소는 2100 임
세그먼트 번호
크기
시작주소
0
1200
4000
1
800
5700
2
1000
2000
3
500
3200
2. 가상기억장치 기타 관리 사항
⑴ 페이지 부재
- 프로세스 실행 시 참조할 페이지가 주기억 장치에 없는 현상
⑵ 지역성(Locality)
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
■ 지역성의 종류
시간 구역성 (Temporal Locality)
- 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스 하는 현상
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음
공간 구역성 (Spatial Locality)
- Loop(반복), Stack(스택), 부 프로그램(Sub Routine) 등
- 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스 하는 현상
- 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음
- 배열순회, 순차적 코드 실행 등
⑶ 워킹 셋(Working Set)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
⑷ 스래싱(Thrashing)
- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
3. 페이지 교체 알고리즘
⑴ FIFO (First In First Out)
- 가장 먼저 메모리에 적재된 페이지를 먼저 교체하는 기법
- 프레임 개수를 늘리면 부재 발생이 감소해야 하나, 오히려 더 늘어나는 Belady's Anomaly 이상현상 발생
- 페이지 프레임이 3개일 때, 페이지 결함 예
참조 페이지
1
2
3
1
2
4
1
2
5
1
1
1
1
1
4
4
4
5
2
2
2
2
2
1
1
1
3
3
3
3
3
2
2
O
X
X
O
O
O
O
페이지 프레임
페이지 부재
O
O
⑵ OPT (Optimal replacement, 최적 교체)
- 앞으로 가장 사용 안 될 페이지를 교체
- 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘이나 참조 상황을 예측하기 어려움
⑶ LRU (Least Recently Used)
- 최근에 가장 오랫동안 사용되지 않은 페이지를 교체
- 페이지 프레임이 3개일 때, 페이지 결함 예
참조 페이지
1
2
1
0
4
1
3
1
1
1
1
1
1
1
2
2
2
4
4
4
0
0
0
3
O
O
X
O
페이지 프레임
페이지 부재
O
O
X
⑷ LFU (Least Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체
- 페이지 프레임이 3개일 때, 페이지 결함 예
참조 페이지
1
2
3
1
2
4
1
2
5
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
4
4
4
5
O
X
X
O
X
X
O
페이지 프레임
페이지 부재
O
O
⑸ NUR(Not Used Recently)
- 최근의 사용여부를 확인하기 위해 각 페이지마다 두 개의 비트 사용
- 참조비트와 변형비트를 이용해서 페이지 교체
- 다음 중 가장 나중에 교체될 페이지는 4번
번호
1
2
3
4
참조비트
0
0
1
1
변형비트
0
1
0
1
⑹ SCR(Second Chance Replacement)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, FIFO 기법의 단점을 보완하는 기법
Section 4. 프로세스
1. 프로세스
⑴ 프로세스의 개념
- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
⑵ 스레드(Thread)
① 스레드의 개념
- 프로세스 내에서 실행되는 흐름의 단위
- 프로그램은 하나 이상의 프로세스를 가지고 있고, 하나의 프로세스는 반드시 하나 이상의 스레드를 갖는다.
⑶ 메모리상의 프로세스 영역
① 코드 영역
- 실행할 프로그램의 코드가 저장되는 영역
② 데이터 영역
- 전역변수와 정적변수(static) 변수가 할당 되는 부분
③ 힙 영역
- 프로그래머가 할당/해제하는 메모리 공간
④ 스택 영역
- 프로그램이 자동으로 사용하는 임시 메모리 영역
⑷ 프로세스 상태 전이
⑸ 문맥 교환(Context Switching)
- 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해 이전의 프로세스의 상태를 PCB에 보관하고 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정
⑹ PCB (Process Control Block, 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 정보를 저장해 놓는 공간
2. 프로세스 스케줄링
⑴ 스케줄링(Scheduling)의 개념
- 메모리에 올라온 프로세스들 중 어떤 프로세스를 먼저 처리할지 순서를 정하는 것
⑵ 스케줄링의 목적
- 공평성
- 효율성
- 안정성
- 반응 시간 보장
- 무한 연기 방지
⑶ 스케줄링 기법
① 선점형 스케줄링 (Preemptive)
- 다른 프로세스가 실행 중이더라도 운영체제가 CPU를 강제로 뺏을 수 있는 방식
- 종류 : Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 등
② 비선점형 스케줄링 (Non-Preemptive)
- 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
- 종류 : FCFS, SJF, HRN, 우선순위, 기한부 등
Section 5. 병행 프로세스와 교착상태
1. 병행 프로세스
⑴ 병행 프로세스의 개념
- 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것
⑵ 문제점과 해결책
① 문제점
- 동시에 2개 이상의 프로세스를 병행 처리하면 한정된 자원(CPU, 메모리, 디스크, I/O 장치 등)에 대한 사용 순서 등 여러 가지 문제가 발생
② 문제 해결책
- 임계구역
- 상호배제 기법
- 동기화 기법
2. 병행 프로세스 문제 해결책
⑴ 임계구역(Critical Section)
- 공유 자원에 대해서, 한 순간에는 반드시 하나의 프로세스만 사용되도록 지정한 영역
⑵ 상호 배제(Mutual Exclusion)
- 하나의 프로세스가 공유 메모리 혹은 공유 파일을 사용하고 있을 때 다른 프로세스들이 사용하지 못하도록 배제시키는 제어 기법
⑶ 동기화 기법
- 스레드들에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정해주는 기법
■ 세마포어(Semaphore)
- 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
- P와 V라는 2개의 연산에 의해서 동기화를 유지시키고, 상호 배제의 원리를 보장
■ 모니터(Monitor)
- 프로그래밍 언어 수준에서 동시성을 제어하여 타이밍 오류를 해결한 상호 배제 기법
3. 교착상태(Dead Lock)
⑴ 교착상태의 개념
- 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
⑵ 교착상태 발생 조건
■ 상호배제(Mutual Exclusion)
- 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
■ 점유와 대기(Hold & Wait)
- 자원을 점유하고 있으면서 다른 프로세스에 할당되어 있는 자원을 추가로 요구하며 대기
■ 비선점(nonpreemption)
- 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음
■ 환형대기(Circular Wait)
- 각 프로세스가 순차적으로 다음 프로세스가 요구하고 있는 자원을 가지고 있는 상태
⑶ 교착상태 해결 방법
■ 예방 기법(Prevention)
- 교착 상태가 발생되지 않도록 사전에 시스템을 제어하는 방법
■ 회피 기법(Avoidance)
- 교착 상태가 발생하려고 할 때, 교착상태 가능성을 피해가는 방법
- 주로 은행원 알고리즘(Banker's Algorithm)이 사용
■ 발견 기법(Detection)
- 시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것
■ 회복 기법(Recovery)
- 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것
- 교착 상태를 일으킨 프로세스를 종료시킴으로 선점을 해제한다.
Section 6. 디스크 스케줄링(Disk Scheduling)
1. 디스크 스케줄링
⑴ 디스크 스케줄링 개념
- 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우, 데이터를 액세스하기 위해 디스크 헤드를
움직이는 경로를 결정하는 기법
⑵ 디스크 스케줄링 목표
- 하드 디스크 검색으로 낭비되는 시간을 최소화
- 특정한 프로세스의 입출력 요청의 우선순위를 정함
- 디스크 대역을 실행중인 각 프로세스에 할당
- 정해진 기한까지 요청을 처리
⑶ 디스크 스케줄링 종류
① FCFS 스케줄링(First Come First Served)
- 요청이 들어온 순서대로 처리
- FCFS 적용 예(현재 헤드의 위치가 53이라고 가정할 경우)
큐의 내용
98
183
37
122
14
124
65
67
합계
이동 순서
1
2
3
4
5
6
7
8
이동 거리
45
85
146
85
108
110
59
2
640
합계
② SSTF(Shortest Seek Time First)
- 현재 헤드에서 가장 가까운 트랙의 요청을 먼저 처리한다.
- SSTF 적용 예(현재 헤드의 위치가 53이라고 가정할 경우)
큐의 내용
98
183
37
122
14
124
65
67
정렬
14
37
65
67
98
122
124
183
이동 순서
4
3
1
2
5
6
7
8
이동 거리
23
30
12
2
84
24
2
59
236
③ SCAN
- 헤드의 진행방향에 있는 요청을 처리하고, 다시 반대 방향으로 틀어 반대방향에 있는 요청들을 처리한다.
④ C-SCAN
- 항상 한쪽 방향에서 반대방향으로 진행하며 트랙의 요청을 처리한다.
⑤ LOOK
- SCAN 기법을 기초로 사용하며, 진행 방향의 마지막 요청을 처리한 후 반대 방향으로 처리하는 기법
⑥ C-LOOK
- C-SCAN 기법을 기초로 사용하며, 바깥쪽에서 안쪽 방향의 모든 요청을 처리한 후, 가장 바깥쪽으로 이동한 후 다시 안쪽 방향으로 서비스 하는 기법
⑦ N-STEP SCAN
- SCAN 기법을 기초로 두고 있으며, 시작하기 전 대기하고 있는 요청들을 우선적으로 처리하고, 처리하는 과정 중에 요청이 들어오는 것들은 이후에 모아서, 반대방향으로 진행할 때 서비스한다.
⑧ 에션바흐(Eschenbach)기법
- 부하가 매우 큰 항공 예약 시스템을 위해 개발
- 탐색 시간과 회전 지연 시간을 최적화하기 위한 최초의 기법
Section 7. 환경변수와 로그 파일
1. 환경변수
⑴ 환경변수의 개념
- 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임
⑵ UNIX/Linux 환경변수
- env, set, printenv 명령어들을 사용하여 환경 변수와 그에 따른 모든 값을 볼 수 있다.
- export 명령을 이용하여 사용자 환경 변수를 전역 변수로 설정할 수 있다.
- 환경변수 종류
환경변수
설명
$PATH
디렉터리의 경로
$HOME
사용자의 홈 디렉터리
$LANG
기본 지원되는 언어
$USER
사용자의 이름
$TERM
로그인 터미널 타입
$PS1
$HISTFILE
$MAIL
$TMOUT
$UID
$PWD
1차 명령 프롬프트 변수
히스토리 파일의 절대 경로
도착한 메일이 저장되는 경로
로그인 후 일정시간 작업을 하지 않을 경우 로그아웃 시키는 시간
사용자의 UID
사용자의 현재 작업 디렉토리
$DISPLAY
X 윈도우에서 프로그램 실행시 출력되는 창
$OSTYPE
운영체제 타입
2. 로그 파일
⑴ 로그의 개념
- 시스템의 모든 기록을 담고 있는 데이터
⑵ 로그 데이터 정보
- 외부로부터의 침입 감지 및 추적
- 시스템 성능관리
- 마케팅 전략으로 활용
- 시스템의 장애 원인 분석
- 시스템 취약점 분석
⑶ 리눅스 로그 종류
종류
설명
messages
시스템 로그 파일
secure
보안인증에 관한 메세지 로그파일
maillog
메일 로그 파일
xferlog
ftp 로그파일
dmesg
부팅 시의 시스템 로그
wtmp
시스템에 로그인 기록이 저장되는 파일(전체 로그인 기록)
utmp
시스템에 로그인 기록이 저장되는 파일(현재 로그인 사용자에 대한 기록)
lastlog
각 계정들의 가장 최근 로그인 기록