출처 : 박미진 컴퓨터 일반
전산직 필기 준비를 위해 박미진 컴퓨터 일반 이론 정리 글입니다.
1) 운영체제 개요
운영체제 정의
- 사람을 대신하여 컴퓨터 시스템의 각종 자원을 보다 효율적으로 관리하고 운영하는 시스템 소프트웨어
- 사용자에게 최대의 편리성을 제공하도록 하기 위한 컴퓨터 하드웨어와 사용자간의 매개체 역할을 하는 시스템 프로그램
운영체제 목적
- 편리성 : 사용자에게 편리한 환경 제공
- 운영체제는 사용자가 프로그램 효율적으로 실행할 수 있는 환경 제공해야함
- 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스 제공해야함
- 효율성 : 시스템 성능 향상을 지원
- 처리량 : 시스템의 생산성을 나타내는 것. 단위시간당 처리하는 작업량.
- 응답시간 : 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지 걸리는 시간.
- 시분할 시스템, 온라인 시스템 : 응답시간(response time)
- 일괄처리 시스템 : 반환 시간(return around time)
- 신뢰도 : 하드웨어, 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력
- 사용 가능도 : 사용자가 일정기간 동안 컴퓨터를 실제 사용한 시간 비율
- 고장과 오류 발생해도 영향 최소화하여 시스템 전체 중단하지 않고 운영할 수 있어야함.
- 제어 서비스 향상
- 운영체제는 시스템을 확장하고 효율적으로 운영할 수 있도록 새로운 기능의 효과적인 개발 허용해야함
- 입출력장치의 동작을 관리 및 제어하거나 시스템 오류 예방 등으로 컴퓨터 자원을 여러 사용자에게 효율적으로 할당하고 관리할 수 있도록 제어 서비스를 발전해나가야함.
운영체제의 기능
- 자원 관리
- 주기억장치 관리
- 주기억장치의 어느 부분 사용? 누가 사용? 점검
- 주기억장치에 저장할 프로세스 결정
- 주기억장치 할당, 회수 방법 결정
- 보조기억장치 관리
- 빈 여유 공간 관리
- 새로운 파일을 작성할 때 저장 장소 할당
- 파일을 생성하고 삭제
- 프로세스 관리
- 프로세스와 스레드를 스케줄링함
- 사용자 프로세스와 시스템 프로세스를 생성하고 제거함
- 프로세스를 중지하고 재수행함
- 프로세스 동기화 방법을 제공함
- 프로세스 통신 방법을 제공함
- 교착상태를 방지하는 방법을 제공함
- 주변장치(입출력장치) 관리
- 임시저장 시스템 기능 제공
- 일반 장치용 드라이버 인터페이스 제공
- 특정 장치 드라이버 제공
- 파일(데이터) 관리
- 파일 생성하고 삭제함
- 디렉터리 생성하고 삭제함
- 보조기억장치에 있는 파일을 맵핑함
- 안전한(비휘발성) 저장장치에 파일을 저장함.
- 주기억장치 관리
- 시스템 관리
- 시스템 보호(사용자 권한 부여)
- 컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근을 제어하는 방법
- 운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공하여 데이터와 시스템을 보호함
- 네트워킹(통신)
- 연결된 프로세서가 통신을 할 때 경로설정, 접속정책, 충돌, 보안 등의 문제를 고려함
- 명령 해석기
- 사용자나 프로그램에서 대화형으로 입력한 명령어를 이해하고 실행하는 사용자와 운영체제의 인터페이스
- 시스템 보호(사용자 권한 부여)
운영체제의 유형별 특징
- 다중프로그래밍 시스템
- 하나의 CPU로 여러 개의 사용자 프로그램이 마치 동시에 실행되는 것처럼 처리하는 방식
- 한 사용자 프로그램이 입출력 장치 등 CPU를 필요로 하지 않는 동안, 다른 사용자 프로그램이 그 시간에 CPU 사용하여 효율 극대화
- 여러 작업을 준비 상태로 두기 위해 메모리에 보관, 일정 형태의 메모리 관리 필요
- 스케줄링 필요
- 시분할 시스템
- 프로세서 스케줄링과 다중 프로그래밍 사용하여 각 사용자에게 컴퓨터를 시간적으로 분할하여 사용할 수 있도록 함
- 여러 작업이 메모리에 저장되어있는 경우 : 한 작업이 다른 작업의 데이터 변경하는 것에 대한 제어가 필요
- 다중 처리 시스템
- 마이크로프로세서 여러 개를 연결해 다중 프로세서를 만들 수 있음. → 초고속 프로세서 사용하지 않고도 대형 컴퓨터의 능력 얻을 수 있음
- 주/종 다중 처리 시스템과 대칭적 구성 다중 처리 시스템으로 구분됨
- 분산처리 시스템
- 시스템마다 운영체제와 메모리를 가지고 독립적으로 운영되며 필요할 때 통신함
- 자원 공유, 연산속도 향상, 신뢰성과 통신 등의 목적으로 여러 개의 물리적 프로세서에 연산을 분산시킴
- 응답 시간과 데이터 입력 방식에 따라
- 일괄처리(batch)
- 대화식(interactive)
- 실시간(real-time)
- 클라우드 컴퓨팅 기술
- laaS(Infrastructure as a Service) - 데이터 센터에 있는 자원 가상화하여 인터넷으로 제공 EC2, S3
- PaaS(Platform as a Service) - 응용 프로그램 구축 개발환경 웹으로 제공 open api
- Saas(Software as a Service) - 소프트웨어 인터넷으로 제공. 온디멘드 소프트웨어
2) 프로세스와 스레드
프로세스
- 프로세스 정의
- 실행중인 프로그램
- 디스크에 저장된 실행 가능 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태로 해당 프로세스가 사용하고 있는 메모리 영역 존재
- 1 프로세스, 1 PCB
- 프로세스 일반적인 메모리 구조
- 프로그램 : 컴파일한 코드, 초기화 전역변수, 문자열, 문자열 상수 등 정적 데이터 포함하는 정적 개체
- 프로세스 : PC나 레지스터처럼 어떤 자원을 사용하는지 관련 정보가 들어있는 동적 개체
- 스택 : 데이터 일시 저장 영역
- 지역변수, 호출한 함수의 반환 주소, 반환 값, 매개변수 등에 사용
- 함수 호출할수록 커지고, 반환하면 줄어들음
- 힙 : 코드 영역과 별도로 유지되는 영역
- 동적으로 메모리 할당하려고 프로그램 실행 중 시스템 호출을 사용했다가 해제하는 방법
- 데이터 : 프로그램의 가상주소 공간
- 전경변수나 정적변수를 저장하거나 할당하고 실행하기 전에 초기화
- 코드 : 실행 명령을 포함하는 메모리거나 목적 파일에 있는 프로그램 영역
- 프로그램 시작할 때 프로세서가 디스크에서 읽어 실행하는 컴파일한 프로그램을 저장
프로세스 종류
- 역할에 따른 분류
- 시스템(커널) 프로세스
- 모든 시스템 메모리와 프로세서의 명령에 액세스할 수 있는 프로세스
- 프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(OS) 영역을 침범하지 못하게 감시하고, 사용자 프로세스를 생성하는 기능을 한다.
- 사용자 프로세스
- 시스템(커널) 프로세스
- 병행 수행 방법에 따른 분류
- 독립 프로세스
- 협력 프로세스
프로세스 상태
- 준비 → 실행 (Dispatching)
- : 준비 상태 프로세스는 디스패처에 의해 프로세서가 부여되면 실행상태가 됨
- 실행 → 준비 (Time run out)
- : 프로세스 독점 방지 위해 인터럽트 클록 두어서 지정 시간 동안만 프로세스가 프로세서 점유하도록
- 실행 → 대기 (Block)
- : 지정된 시간 이전에 입출력 연산 등을 필요로 할 경우, 프로세스가 프로세서 양도
- 대기 → 준비 (Wakeup)
- : 입출력 작업 끝났을 때
프로세스 제어 블록 (PCB)
- 운영체제에 특정 프로세스에 대한 정보 제공해주는 데이터 블록
- 프로세스 생성시 만들어짐, 주기억장치에 유지됨, 운영체제 내에서 한 프로세스의 존재 정의, 프로세스 실행 종료시 같이 삭제됨
- 인터럽트 처리, 자원할당, 스케줄링 등을 수행하는 운영체제의 모든 모듈에 의해 판독되고 수정 가능
프로세스 식별자
프로세스 식별자 | |
프로세스 상태 | 생성, 준비, 실행, 중단 |
프로그램 카운터 | 프로세스 실행 다음 명령의 주소 |
레지스터 저장 영역 | 인터럽트 발생시 프로그램 카운터랑 함께 저장 |
프로세스 스케줄링 정보 | 우선순위, 스케줄링 큐의 포인터 |
계정 정보 | |
입출력 상태 정보 | |
메모리 관리 정보 |
문맥교환(Context Switching)
- 프로세서를 다른 프로세스로 전환하려면 이전의 프로세스 상태 레지스터 내용을 보관하고, 다른 프로세스의 레지스터들을 적재하는 과정
- 프로세스가 ‘준비→실행’, ‘실행→준비’, ‘실행→대기’ 상태로 변환할 떄 발생
- 문맥교환은 모두 오버헤드 존재
- 효율적 구현하기 위해 스레드 사용
스레드
- 스레드 개념
- 프로세스 - 자원, 제어(스레드)
- 1 프로세스 여러 스레드
- 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보를 공유함
- PC, SP 등을 비롯한 문맥정보, 지역 데이터, 스택을 독립적으로 가짐
- 코드, 전역 데이터, 힙을 다른 스레드와 공유함
- 같은 프로세스의 스레드들은 동일한 주소 공간 공유
- 스레드의 이점
- 프로세스의 자원과 메모리 공유 가능 → 성능 향상
- 경제성 향상 → 오버헤드 감소
- 다중처리(멀티 프로세싱)로 성능과 효율 향상 → 병렬 실행으로 성능과 효율성 높임
3) 병행 프로세스
병행 프로세스
- 병행 프로세스
- 한 프로세서는 한 번에 하나의 프로세스 실행 가능
- 운영체제거 프로세서를 빠르게 전환해서 시분할하여 프로세스 여러 개를 동시에 실행하는 것처럼 보이게 하는 것을 병행 프로세스라함
- 병행 프로세스의 해결 과제
- 공유 자원을 상호 배타적으로 사용해야함
- 병행 프로세스 간에는 협력이나 동기화가 되어야 함
- 두 프로세스 사이에서는 데이터를 교환할 수 있도록 통신이 되어야 함
- 결정성 확보해야함
- 교착상태 해결하고 병렬처리 능력 극대화 해야함
- 상호배제 보장해야함
상호 배제와 동기화
- 임계영역(Critical Section)
- 임계자원 : 둘 이상의 프로세스들이 동시에 공유할 수 없는 자원
- 임계영역 : 임계자원을 이용하는 부분
- 임계영역에는 한 순간 반드시 단 하나의 프로그램만이 허용됨
- 프로세스는 임계영역 내에서 보류(block) 되어서는 안되며 무한루프에 빠지지 않아야 함
- 세마포어(Semaphore)
- 다익스트라(Dijkstra)에 의해 제안된 것으로 상호배제의 해결을 위한 동기 도구
- 세마포어는 플래그로 사용되는 음이 아닌 정수값을 갖는 변수
- P : 검사(problem), V : 증가(verhogen)
P(S) : while S <= 0 do no-op; S := S-1; V(S) : S := S + 1;
- 임계영역 문제를 해결하기 위한 조건
- 상호배제
- 진행
- 제한된 대기
- 상호배제 방법
- 데커의 알고리즘
- TestAndSet 명령어
- 세마포어
- 모니터
4) 교착 상태
교착상태(deadlock) 정의
- 다중 프로그래밍 시스템에서 결코 일어나지 않을 사건을 기다리고 있는 프로세스를 ‘교착상태’에 빠졌다고 함
- 임의의 프로세스 집합에서 그 집합 내의 각각의 프로세스가 다른 프로세스에 의해서만 발생될 사건을 서로 기다리는 상태
자원할당 그래프
- 교착상태 필요 조건
- 상호 배제 : 한 번에 한 프로세스만 그 자원 사용 가능
- 점유와 대기 : 적어도 하나의 자원을 보유하고 현재 다른 프로세스에 할당된 자원을 얻기 위해 기다리는 프로세스가 있어야함
- 비선점 : 자원을 강제로 빼앗을 수 없고, 그 자원을 점유하고 있는 프로세스가 끝나야 해제 가능
- 순환 대기 : 프로세스와 자원들이 원형을 이룸
교착상태 처리 기법
- 교착상태 예방 다음 세가지 필요조건 중 하나를 부정
- 점유와 대기조건의 부정
- 비선점 조건의 부정
- 순환 대기 조건의 부정
- 교착상태 회복
- 프로세스 중지
- 자원 선점 (희생자의 선택, 복귀, 기아)
5) 단일 프로세서 스케줄링
스케줄러의 종류
- 작업 스케줄러 : 장기 스케줄러
- 디스크 공간에 제출된 프로세스들을 선택하여 주기억장치로 적재
- CPU 위주의 연산과 I/O 위주의 연산을 적절히 혼용하여 스케줄링
- 프로세스 스케줄러 : 단기 스케줄러
- 실행 준비가 되어있는 프로세스 중에서 하나를 선택하여 CPU에 할당
프로세스 스케줄링 알고리즘
- FCFS 스케줄링 (비선점)
- 가장 간단한 기법
- 준비큐에 도착한 순서에 따라 CPU를 할당받음
P1 24 P2 3 P3 3 - 평균 대기 시간 = (0+24+3)/3 = 17
- 평균 반환 시간 : (24+3+3)/3 = 27
- Round Robin 스케줄링 (선점)
- FCFS에 의해서 프로세스들이 내보내어 지며 각 프로세스는 같은 크기의 CPU를 할당한다.
P1 0 8 P2 1 4 P3 2 9 P4 3 5 - 평균 대기 시간 = ((16-4) + (4-1) + ((8-2)+(20-12)+(25-24)) + ((12-3)+(24-16)) / 4 = 11.75
- 평균 반환 시간 : (20+(8-1)+(26-2)+(25-3) / 4 =18.25
- P1(4) / P2(4) / P3(4) /P1(4) /P3(4) / P4(2) / P5(1)
- SJF 스케줄링 (비선점)
- 기다리고 있는 작업 중에서 수행시간이 가장 짧다고 판정된 것을 먼저 수행한다
P1 0 8 P2 1 4 P3 2 9 P4 3 5 - 평균 대기 시간 = 7.75
- 평균 반환 시간 : 14.25
- SRT 스키줄링 (선점)
- SJF와 마찬가지로 새로 도착한 프로세스를 포함하여 처리가 완료되는데 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행한다.
P1 0 8 P2 1 4 P3 2 9 P4 3 5 - 평균 대기 시간 = 6.5
- 평균 반환 시간 : 13
- 다단계 큐 알고리즘 (선점)
- 각 작업들이 서로 다른 묶음으로 분류될 수 있을 때 사용된다
- 일반적으로 전면작업(대화형)과 후면작업(일괄처리형)으로 분류한다면 이 두 작업은 각각 요구 반응 시간이 다르므로 서로 다르게 스케줄링 되어야 한다
- 준비상태 큐를 여러 단계 종류로 분할해둔다
- 각 큐는 자신만의 독자적인 스케줄링 알고리즘을 갖고있다.
- 다단계 피드백 큐 알고리즘 (선점)
- cpu는 사용시간에 따라 입출력 위주와 cpu 위주로 구분하여 특성에 따라 서로 달ㄴ time slice를 부여한다
- 프로세스가 하위단계의 큐로 옮겨갈수록 주어진 할당 시간을 점차 크게 설정
- 입출력 작업들 우선권
- HRN 스케줄링 (비선점)
- SJF의 약점이었던 긴 작업과 짧은 작업간의 지나친 불평등을 어느 정도 보완한 기법
- $$ (대기시간 + 서비스 받을 시간) / 서비스 받을 시간 $$
- 짧은 작업이 우선순위 높
- 긴 작업도 대기시간 큰 경우에는 우선순위 높
6) 메모리 관리
메모리 관리 정책
- 반입(Fetch) 정책
- 페이지를 메인메모리로 가져올 시기를 결정하는 정책
- 요구반입 : 실행중인 프로그램에 의해 어떤 프로그램이나 자료가 참조될 때 그것을 주기억장치로 옮김
- 예상반입 : 현 프로그램 수행 중에 앞으로 요구될 가능성이 큰 자료 또는 프로그램을 예상하여 주기억장치로 미리 옮김
- 배치(Placement) 정책
- 새로 반입된 자료나 프로그램을 주기억장치의 어디에 위치시킬 것인가를 결정하는 정책
- 최초 적합 (First Fit)
- 최적 적합 (Best Fit)
- 최악 적합 (Worst Fit)
- 교체 (Replacement) 정책
- 새로 들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤 프로그램이나 자료를 주기억장치로부터 제거할 것인가를 결정하는 정책으로 가상기억장치에서 이용됨
7) 가상 메모리
가상 메모리
- 가상 메모리
- 프로그래머나 사용자들이 디스크의 커다란 메모리 공간을 가상메모리로 인식하고 이를 이용하여 메모리의 부족함 없이 다중 프로그래밍 환경을 실현하는 기법
- 논리적 주소를 물리적으로 분리하여 사용자가 주기억장치 용량을 초과한 프로세스에 주소를 지정해서 주기억장치를 제한 없이 사용할 수 있도록 함
- 프로세서의 이용률과 처리율 향상
- 응답시간이나 반환시간이 향상되지는 않음
- 동적 주소 변환 (DAT :Dynamic Address Translation 기법)
- 실행중인 프로세스가 참조하는 주소와 주기억장치에서 사용하는 물리적 주소를 분리해야함
- 가상주소(논리적 주소, 프로그램 주소)를 물리적 주소로 변환하는 과정을 매핑이라함
- dat는 인위적 연속성을 제공
- 가상주소 연속적이여도 주기억장치에서도 연속적일 필요 없음
- 매핑 테이블 유지
- 블록(가상메모리의 이동단위) 사상
- 고정길이의 블록은 페이지, 가변길이의 블록은 세그먼트
- 페이징 기법
- 외부 단편화 x
- 페이지의 크기를 작게 설계함으로써 내부 단편화 줄일 수 있음
- 페이지 사상으로 비용이 증가하고 수행속도가 감소
- 페이지는 프로그램에 상응하는 논리적 의미를 갖지 못함
- 세그멘테이션 기법
- 기억장치 할당은 최초, 최적, 최악 적합 기법을 사용하여 해결하는 dat 방법을 사용(외부적 단편화가 발생0
- 세그먼트 는 페이지 시스템보다 수행방법이 쉽고 명확
- 페이징 기법
- 페이지 폴트는 프로세스에서 원하는 페이지가 주기억장치 내에 존재하지 않을 경우 → 페이지 교체
- 고정길이의 블록은 페이지, 가변길이의 블록은 세그먼트
페이지 교체 정책
- FIFO
- 페이지가 교체될 필요가 있을 때, 가장 먼저 주기억장치에 들어온 페이지와 교체시킴
- Belady’s 모순 : 페이지 프레임 수 증가될 때 현실적으로 페이지 부재가 더 증가함
- LRU (Least Recently Used)
- 최근에 가장 적게 쓰인 페이지(가장 오랫동안 사용되지 않은 페이지)를 교체한다
- 각 페이지들이 참조될 때마다 그때의 시간을 테이블에 기억시키는 막대한 오버헤드를 초래
- LFU (Least Frequently Used)
- 각 페이지마다 참조 횟수에 대한 계수기를 가지며 그 값이 가장 작은 페이지가 교체됨
- 어떤 프로세스의 초기 단계에서 한 페이지가 많이 사용되고 이후에 사용되지 않을 경우 큰 계수를 가지고 있기 떄문에 더이상 사용되지 않아도 메모리에 남아있음
- 바로 불러온 페이지가 교체될 수도 있음
- NUR (Not Used Recently)
- 최근에 쓰이지 않는 페이지는 가까운 미래에도 쓰이지 않을 가능성이 많기 떄문에 교체 대상
- 각 페이지 당 두 개의 하드웨어 비트(참조비트, 변형비트)를 가지고 이 값으로 교체할 페이지를 선택함.
적재 정책
- 지역성(locality)
- 실행중인 프로세스에 의해 나타나는 특성으로 프로세스들은 기억장치 내의 정보를 균일하게 액세스하는 것이 아니라 어느 한 순간에 특정부분을 집중적으로 참조한다
- 지역성은 캐시 메모리, 연관 기억장치의 성립 이유가 되고 Working Set를 뒷받침 한다.
- 시간 지역성은 처음에 참조된 기억장소가 가까운 미래에도 계속 참조될 가능성이 높다는 것을 의미
- 공간지역성은 일단 하나의 기억장소가 참조되면 그 근처의 기억장소가 계속 참조되는 경향을 의미
- 스래싱(Thrashing)
- 너무 자주 페이지 교체가 일어나는 경우를 말하는 것으로 어떤 프로세스가 프로그램 수행에 소요되는 시간보다 페이지 교체에 소요되는 시간이 더 큰 경우
- 프로세서의 이용률을 높이고 스레싱을 중단하려면 다중 프로그래밍의 정도를 낮춰야만 함.
- 스래싱 현상을 방지하려면 각 프로세스에 필요한 프레임을 제공할 수 있어야 함.
- 페이지 부재 비율 (PFF, Page Fault Frequency)
- 스래싱을 예방하는 직접적인 액세스 방법으로, 페이지 환경에서 프로세스의 실행을 측정하는 기준이 됨
- 페이지 부재 비율이 높다는 것은 프로세스에 더 많은 프레임이 필요하다는 의미, 페이지 부재 비율이 낮다는 것은 프로세스에 프레임이 너무 많다는 의미
8) 디스크 스케줄링
탐색시간 최적화 기법 (트랙을 찾는 데 걸리는 시간)
- FCFS(First Come First Service) 스케줄링
- 가장 간단한 형태로, 먼저 도착한 요청이 우선적으로 서비스 받는다.
- 헤더 이동 거리에 비해 전체적인 처리율이 낮다.
- SSTF(Shortest Seek Time First) 스케줄링
- 탐색거리가 가장 짧은 요청이 먼저 서비스를 받는 기법으로 현재 헤드 위치에서 최소의 탐색시간을 요하는 디스크 요청을 고르며 먼저 처리해 나간다.
- 안쪽이나 바깥쪽트랙이 가운데 있는 트랙보다 훨씬 서비스를 덜 받는 기아 현상이 발생할 수 있다.
- FCFS보다 처리량이 많고 평균 응답시간이 짧으나 응답시간의 편차가 발생
- 일괄처리 시스템에 유용, 대화형 시스템에 부적합
- SCAN 스케줄링 (엘레베이터 알고리즘)
- 요청 큐의 동적 특성을 반영한 것으로 입출력 헤드가 디스크의 한 끝에서 다른 끝으로, 또한 다른 끝에서 도달시 역방향으로 이동하면서 요청된 트랙에 대한 처리를 해나간다.
- 헤드는 디스크와 한 끝과 다른 끝 사이 계속 왕복
- SSTF에서 발생하는 차별대우를 많이 없애고 낮은 편차를 가지므로 대화형 작업에 적합
- C-SCAN (Circular-SCAN) 알고리즘
- SCAN에서의 불공평한 대기시간을 좀 더 균등하게 하려 변형을 가한 스케줄
- 한쪽 방향으로 헤드를 이동해 가면서 요청을 처리하지만 한쪽 끝에 도착하면 반대 방향으로 헤드를 처리하지 않고 이동
- 큐 내의 트랙을 처리하고 있는 도중 새롭게 요청된 트랙은 다음 번 이동 때 처리함
- LOOK 스케줄링
- 헤드는 각 방향으로 요청에 따르는 거리만큼만 이동하고, 현재 방향에서 더이상의 요청이 없다면 헤드의 이동 방향이 바뀌는 방식으 사용
- SCAN은 LOOK, C-SCAN은 C-LOOK이라 함
회전지연시간 최적화 기법 - 섹터를 찾는 데 걸리는 시간
- 에션바흐 기법
- SLTF 스케줄링 (섹터 큐잉)
9. 파일 관리
파일
- 파일의 구성 요소
- 항목
- 레코드
- 파일 구조에 따른 분류
- 히프 파일
- 키순차 파일
- 인덱스 파일
- 직접 파일
디렉터리 시스템
- 1단계 디렉터리
- 모든 파일 각각 고유한 이름 가짐
- 2단계 디렉터리
- 각 사용자는 자신의 사용자 파일 디렉터리 UFD를 갖고 각 UFD는 유사 구조를 가지며 오직 한 사용자의 파일만 나타냄
- 트리구조 디렉터리
- 하나의 루트 디렉터리를 가지며 시스템 내의 모든 파일은 유일한 경로명을 가짐
디스크 할당 방법
- 디스크의 빈 공간 관리
- 비트 벡터
- 연결 리스트
- 연속 할당
- 파일들이 디스크의 연속적인 주소들의 집합에 할당되느 방식
- 파일에 접근할 때 필요한 디스크 탐색의 횟수는 최소화
- 주기적 압축 필요
- 연결 할당
- 디스크 블록들은 디스크 전체에 분산되어있음
- 디렉터리 파일의 첫번째와 마지막 블록의 포인터 가지고 있음
- 외부 단편화 X
- 직접 액세스 기능 지원 X
- 포인터를 위한 기억공간이 필요
- 인덱스 할당
- 연속할당의 외부 단편화 해결했으나 직접 액세스를 지원할 수 없고 블록들의 포인터가 디스크 전체에 분산되어 있음
- 인덱스 할당은 인덱스 블록으로 관리하여 직접 액세스를 지원
'필기' 카테고리의 다른 글
[전산직 필기] 5. 데이터베이스론 (1) | 2024.09.23 |
---|---|
[전산직 필기] 3. 데이터 통신론 (0) | 2024.08.23 |