마인드 맵 갤러리 컴퓨터 운영 체제 마인드 맵
프로세스 및 스레드, 메모리 관리, 파일 관리, IO 관리 등을 포함한 컴퓨터 운영 체제에 대한 마인드 맵입니다. 그것이 모두에게 도움이 되기를 바랍니다.
2023-12-08 15:46:30에 편집됨이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
운영 체제
1장 개요
기본 사상
전체 컴퓨터 시스템의 하드웨어 및 소프트웨어 자원을 제어 및 관리하고, 컴퓨터 작업 및 자원 할당을 합리적으로 구성 및 예약하며, 사용자에게 편리한 인터페이스와 환경을 제공하는 프로그램 모음입니다.
특징
경쟁 상대
동일한 시간 간격 내에 여러 이벤트가 발생합니다.
병렬과 다르다 병렬성은 동시에 병렬성이다
공유됨
상호 배타적인 공유
지정된 시간 내에 하나의 프로세스만 리소스에 접근할 수 있습니다.
프로세스가 리소스에 액세스하고 해제한 후에만 다른 프로세스가 리소스에 액세스할 수 있습니다.
중요한 자원
일정 기간 동안 하나의 프로세스에만 액세스가 허용됩니다.
예: 물리적 장치, 스택, 변수, 테이블 등
동시 방문
일정 기간 동안 여러 프로세스의 "동시" 액세스 허용
동시에 거시적으로는 미시적 수준에서는 교대로 리소스에 액세스할 수 있습니다(시간 공유).
리소스 공유는 프로그램 동시성을 조건으로 합니다. 프로그램 동시성이 허용되지 않으면 리소스 공유가 이루어지지 않습니다.
두 가지 기본 특성
가상
엔터티는 논리적 대응물이 됩니다.
다중 프로그래밍을 통한 동시 실행
다중 프로그래밍 기술을 사용하여 물리적 CPU를 여러 논리적 CPU로 나눕니다.
가상 기술
시분할 다중화 기술
시간 공유
공간 분할 다중화 기술
가상 스토리지
비동기식
프로세스 실행은 한 단계로 이루어지지 않고 리소스가 제한되어 있기 때문에 중지하고 계속 실행하는 방식으로 수행됩니다.
운영 체제는 사용자와 컴퓨터 하드웨어 시스템 사이의 인터페이스 역할을 합니다.
사용자가 컴퓨터를 사용하는 방법
1) 명령 인터페이스
명령 해석기를 통해
쉘 명령 구문 분석기는 명령 인터페이스이기도 합니다.
온라인 명령 인터페이스
시분할 및 실시간 시스템에 적합
사용자 상호작용 강조
오프라인 명령 인터페이스
수동 작업이 필요하지 않습니다.
일괄 처리 시스템용
미리 준비된 작업과 함께 시스템에 전달되며 작업이 예약되면 시스템의 명령 해석기가 실행을 제어합니다.
2) 프로그램 인터페이스
시스템 호출로 구성
시스템 호출을 사용하여 운영 체제에 서비스 제공을 요청합니다.
운영 체제는 시스템 캐시에 대한 시스템 호출을 제공하지 않으며 캐시는 사용자에게 투명합니다.
개발 경로
1) 수동운전 단계
현재 운영 체제가 없으며 모든 작업이 수동으로 수행됩니다.
2) 일괄 처리 단계
단일 레인 일괄 처리 시스템
1) 순차성
2) 자동성
3) 단방향성
메모리에서는 하나의 프로그램만 실행됩니다.
다채널 일괄 처리 시스템
다중 프로그래밍 기술을 통해
여러 프로그램이 동시에 메모리에 들어가고 CPU 내에서 교대로 실행됩니다.
공유 하드웨어/소프트웨어
IO로 인해 프로그램이 중단되면 CPU는 즉시 다른 프로그램을 실행합니다.
인터럽트를 통해
이점
1) 다중 채널
2) 거시 병렬성
3) 마이크로 시리얼
4) 높은 활용률과 대용량 처리량
단점: 응답 시간이 길고, 인간 상호 작용이 제공되지 않으며, 컴퓨터를 제어할 수 없습니다.
3) 시분할 운영체제
여러 사용자가 터미널을 통해 동시에 호스트를 공유합니다.
시간 조각 회전을 통해
인간-컴퓨터 상호작용 실현
1) 동시성
2) 상호작용성
3) 독립성
여러 사용자가 서로 간섭하지 않고 독립적으로 작동
4) 적시성
짧은 시간 안에 응답을 받아보세요
4) 실시간 운영체제
긴급업무(선제적 우선순위 업무)를 정해진 시간 내에 완료하고, 타임 슬라이스 큐잉이 필요하지 않습니다.
5) 네트워크 운영체제 및 분산 컴퓨터 시스템
네트워크 운영 체제
각 컴퓨터는 유기적으로 통합되어 있습니다.
분산 컴퓨터 시스템
모든 컴퓨터는 동일한 상태를 갖습니다.
6) 개인용 컴퓨터 운영체제
승리,리눅스,맥 OS
운영 환경
프로세서 작동 모드
1) 특권 지침
사용자가 사용할 수 없는 지시어
IO 명령어, 인터럽트 명령어 설정, 상태 워드 전송, 레지스터 저장, 클럭 설정
커널 모드에서만 실행 가능
2) 비특권 명령어
사용자가 사용할 수 있는 지시문
시스템 하드웨어 및 소프트웨어 리소스에 직접 액세스할 수 없습니다.
사용자 주소 공간에 대한 접근만 허용
시스템 호출
액세스 관리 명령어라고도 알려진 트랩 명령어는 시스템 호출을 시작하고 시스템에 서비스 제공을 요청하는 데 사용됩니다.
사용자 모드에서 사용됩니다. 그러니 특권적인 지시가 아니다.
프로그램은 사용자 모드에서 실행됩니다.
커널 프로그램은 커널 모드에서 실행됩니다.
사용자 모드로 전환하라는 명령은 특권 명령입니다.
애플리케이션은 접근 관리 명령어를 통해 운영체제에 서비스를 요청하고, 인터럽트 이벤트를 생성하며, 운영체제를 커널 모드로 전환한다.
일반화된 명령(시스템 호출 명령)의 실행 프로세스는 커널 상태에 있어야 합니다. 그리고 그 호출은 사용자 모드나 커널 모드일 수 있습니다.
사용자 모드에서 커널 모드로 전환하려면 인터럽트를 통과해야 합니다.
인터럽트가 발생하는 한 필연적으로 커널 상태로 전환됩니다.
서브루틴 호출
중단점만 저장
다음 명령어 주소
사용자 모드→코어 모드
예
시스템 서비스 요청
인터럽트 발생
사용자 프로그램 오류
사용자 프로그램이 특권 명령어를 실행하려고 합니다.
사용자 모드에서 코어 모드로의 전환은 하드웨어에 의해 완료됩니다.
인터럽트를 통해 달성해야 함
인터럽트가 발생하는 한 이를 처리하고 커널 상태로 변환해야 합니다.
사용자 상태가 코어 상태에 진입하면 상태가 전환될 뿐만 아니라 스택도 시스템 스택으로 변환됩니다.
시계 관리
클럭 인터럽트 관리를 통한 프로세스 스위칭 구현
시계 인터럽트
스케줄러 실행 여부를 결정하기 위해 시간 관련 정보를 처리합니다.
시스템 시간, 타임 슬라이스, 지연, CPU 사용 시간, 타이머 등
인터럽트와 예외
방해하다 (외부 인터럽트)
운영 체제는 인터럽트 없이는 작동할 수 없습니다.
기능 중 극히 일부만이 커널에 속해 인터럽트 장면 정보를 보호하고 복원하며, 관련 핸들러에게 제어권을 전달합니다.
저장된 데이터
하드웨어 저장
PC
상태어 PSW
운영 체제 저장
일반 레지스터 x
이상 (내부 인터럽트)
잘못된 연산 코드, 범위를 벗어난 주소, 오버플로, 페이지 폴트, 셀프 트랩 등
시스템콜, 접근명령
예외는 마스킹할 수 없으며 발생하면 즉시 처리해야 합니다.
원어
절차이다
1) 운영체제 하단
2) 프로그램은 원자적으로 실행됩니다.
3) 프로그램 실행시간이 짧고 호출이 자주 발생합니다.
4) 커널의 구성요소
경영 스타일
장치 관리
공정 관리
메모리 관리
운영 체제 구조
계층적 접근
각 레이어를 정의하기가 어렵습니다.
모듈식
모듈 간 인터페이스는 실제 요구 사항을 충족하기 어렵습니다.
매크로 커널
주요 기능 모듈은 모두 밀접하게 관련된 전체로서 커널 상태에서 실행됩니다.
승리, 리눅스, iOS, 안드로이드
마이크로커널
주요 기능은 커널에 그대로 두고, 커널 모드에서 실행할 필요가 없는 기능은 사용자 모드로 옮겨준다.
파일 서비스는 사용자 모드에서 실행됩니다.
가장 큰 단점은 성능 문제입니다.
홍멍 OS
운영 체제 부팅
CPU 활성화
JMP 명령을 실행하여 BIOS로 점프
BIOS 인터럽트 프로그램의 진입 주소를 등록합니다.
하드웨어 자체 테스트
OS가 포함된 하드 드라이브 로드
마스터 부트 레코드 MBR 로드
MBR에는 하드웨어 파티션 테이블이 포함되어 있습니다.
MBR은 파티션 테이블을 확인하여 활성 파티션을 찾고 실행을 위해 파티션의 시작 프로그램을 메모리로 전송합니다.
하드 디스크 파티션 스캔
부트 레코드 PBR(파티션 부트 레코드) 로드
운영 체제를 부팅하는 데 사용되는 파티션의 루트 디렉터리에서 프로그램을 찾아 활성화합니다.
부팅 관리자 로드
하드 디스크에 위치하며 운영 체제를 부팅하는 데 사용됩니다.
OS 로드
가상 기기
2장 프로세스와 스레드
프로세스와 스레드
개념
공정 제어 블록 PCB
동시 실행에 참여하는 각 프로그램(데이터 포함)을 독립적으로 실행할 수 있습니다.
PCB는 프로세스의 존재를 나타내는 유일한 신호입니다.
프로세스 엔터티(이미지)
프로그램 세그먼트, 관련 데이터 세그먼트 및 PCB의 세 부분으로 구성됩니다.
프로세스는 프로세스 엔터티의 실행 프로세스입니다.
시스템 내에서 자원 할당과 스케줄링을 담당하는 독립적인 단위입니다.
특징
여러 프로그램의 동시 실행으로 인해 발생합니다.
동적
동시성
독립
비동기성
프로세스 상태 및 전환
실행상태→차단상태
현장을 보호하세요
공정 구성
PCB
프로그램 섹션
CPU에 의해 실행될 프로세스에 의해 예약될 수 있는 프로그램 코드 세그먼트
데이터 세그먼트
프로세스 제어
프로세스 제어에 사용되는 프로그램을 기본 프로그램이라고 합니다.
각 상위 및 하위 프로세스에는 자체 PCB가 있습니다.
상위 프로세스와 하위 프로세스는 일부 리소스를 공유하지만 가상 주소 공간은 공유하지 않습니다.
프로세스가 종료되었습니다
이벤트
정상적으로 종료
비정상적인 종료
외부 개입
프로세스
PCB 검색, 상태 읽기
작업 종료
다른 프로세스에 리소스 제공
또는 운영 체제로 반환
모든 하위 프로세스 종료
PCB 제거
프로세스 커뮤니케이션
프로세스 간 정보 교환
낮은 수준의 의사소통
PV 운전
중단할 수 없습니다
고급 커뮤니케이션
공유 저장공간
프로세스 내의 스레드는 자연스럽게 프로세스 공간을 공유합니다. 프로세스 공간은 특수 시스템 호출을 통해 프로세스 간에 공유됩니다.
메시징
데이터 교환은 형식화된 메시지로 이루어집니다.
직접적인 의사소통
간접적인 의사소통 방식
중간 엔터티는 사서함입니다.
파이프 통신
데이터는 파이프라인에서 먼저 들어오고 먼저 나옵니다.
파이프 파일이 메모리에 존재합니다.
빈 데이터를 읽으면 읽기 프로세스가 차단됩니다.
파이프는 생성 프로세스에서만 액세스할 수 있습니다.
일반 파이프는 단방향 통신만 허용합니다.
스레드와 멀티스레딩
기본적인 CPU 실행 단위입니다.
프로그램 실행 흐름의 가장 작은 단위
스레드 제어 블록 TCB는 다음과 같이 구성됩니다.
스레드 ID
프로그램 카운터
레지스터 세트
스택 구성
스레드별 저장 영역
동일한 프로세스에서 여러 스레드가 동시에 실행될 수 있습니다.
스레드를 소개한 후
프로세스는 CPU 외부의 시스템 자원 할당 단위 역할을 합니다.
프로세서의 할당 단위인 스레드
프로세스는 시스템에서 자원을 소유하는 기본 단위입니다. 스레드는 시스템 자원을 소유하지 않습니다.
스레드 구현
분류
사용자 수준 스레드
모든 작업은 사용자 공간에서 애플리케이션에 의해 수행됩니다.
스레드 전환에는 커널 공간이 필요하지 않으며 오버헤드가 낮습니다.
필요에 따라 다른 스케줄링 알고리즘을 선택하십시오.
사용자 수준 스레드가 차단되면 전체 프로세스도 차단됩니다.
커널 수준 스레드
운영 체제 지원 완료
동일한 프로세스에서 스레드를 전환하려면 사용자 모드에서 커널 모드로 전환해야 하므로 비용이 많이 듭니다.
동일한 프로세스의 여러 스레드가 동시에 CPU에서 병렬로 실행되도록 예약할 수 있습니다.
멀티스레드 모델
다수 대 1개
하나의 코어에 여러 사용자가 매핑됨
1-1
다수 대 다수
프로세서 스케줄링
스케줄링 개념
특정 알고리즘에 따라 준비 대기열에서 프로세스를 선택하고 해당 프로세스에 프로세서를 할당합니다.
작업 및 프로세스
작업은 사용자가 제출하며 사용자 작업을 기반으로 합니다. 프로세스는 운영체제에 의해 생성되며 자원 할당과 독립적인 운영을 위한 기본 단위이다.
스케줄링 계층
고급 예약
작업 일정
작업 스케줄링은 메모리와 보조 기억 장치 간의 스케줄링입니다.
각 작업은 한 번만 로드되고 한 번만 로드됩니다.
중간 스케줄링
메모리 스케줄링
프로그램 호출 및 호출
메모리 활용도 및 시스템 처리량 향상
일시적으로 실행되지 않는 프로세스는 외부 메모리에 예약되고 일시 중단됩니다.
낮은 수준의 스케줄링
프로세스 스케줄링
프로세스 스케줄링 빈도가 높습니다.
가장 기본적이고 꼭 필요한
성능
CPU 활용도
CPU 유효 작업 시간 / (유효 대기)
처리 시간
처리 시간 = 작업 완료 시간 - 작업 제출 시간
평균 처리 시간 = ∑처리 시간 / n
가중 처리 시간 = 작업 처리 시간 / 작업 실제 실행 시간
평균 가중 처리 시간 = ∑가중 처리 시간 / n
대기 시간
응답 시간
스케줄링 구현
스케줄러
대기열
디스패처
컨텍스트 전환기
다수의 로드/저장 명령을 실행하고 레지스터 내용을 저장합니다.
타이밍, 전환 및 프로세스 예약
스케줄링 및 전환을 수행할 수 없는 상황
1) 인터럽트 처리 과정 중
2) 프로세스가 시스템 커널의 중요한 섹션에 있습니다.
크리티컬 섹션에 진입한 후 잠그고, 잠금을 해제하기 전에 프로세스를 전환하면 안 됩니다.
3) 원자 과정 중
원자 프로세스 중에는 인터럽트도 마스킹됩니다.
예약 및 전환이 가능한 상황
비박탈 계획
일정 조건이 발생하여 현재 프로세스를 계속할 수 없습니다.
박탈 일정
인터럽트 처리 종료
함정이 끝나다
스케줄링 방법
비선점형
긴급 프로세스가 준비된 경우에도 현재 프로세스를 계속 진행합니다.
선제적
긴급 상황의 우선순위가 더 높습니다
어울리는 과정
시스템에서 실행 중인 다른 프로세스가 없으면 유휴를 활성화합니다.
두 스레드의 스케줄링
사용자 수준
적은 수의 기계 명령을 사용하여 동일한 프로세스 내에서 스레드 전환
커널 수준
커널은 실행할 특정 스레드를 선택하고 여기에 시간 조각을 할당합니다.
스케줄링 알고리즘
선착순
양도할 수 없는 알고리즘
알고리즘이 단순하고 효율성이 낮음
바쁜 CPU 작업에 도움이 됨 바쁜 IO 작업에 도움이 되지 않음
단기 일자리 우선
실행 시간이 가장 짧은 작업이 우선 적용됩니다.
장시간 작업에는 좋지 않음
업무의 긴급성을 충분히 고려하지 않음
평균 대기 시간, 최저 평균 처리 시간
우선순위 스케줄링
작업 우선순위에 따라 실행
프로세스 스케줄링과 작업 스케줄링 모두에 사용할 수 있습니다.
우선 사항
정적 우선순위
한번 결정되면 변경할 수 없다
동적 우선순위
상황에 따라 우선순위 조정 가능
원칙적으로
1) 시스템 프로세스 > 사용자 프로세스
2) 인터랙티브 프로세스 > 비인터랙티브 프로세스
3) IO 프로세스 > 컴퓨팅 프로세스
IO 장치는 CPU보다 느리기 때문에
높은 응답률 우선순위
응답비율 = (대기시간 소요시간) / 소요시간
시간 조각 회전
시간 공유 시스템의 경우
시간 조각이 하나의 시간 조각 내에서 모든 작업을 실행할 수 있을 만큼 충분히 큰 경우, 타임 슬라이스 회전 알고리즘은 선착순으로 변질됩니다.
다단계 대기열
다양한 유형이나 속성의 프로세스가 다양한 준비 대기열에 할당됩니다.
다단계 피드백 대기열
각각 우선순위가 다른 여러 개의 준비 대기열
각 대기열의 프로세스 시간 조각 크기가 다릅니다.
각 대기열은 선착순입니다.
대기열은 우선순위에 따라 예약됩니다.
비교하다
프로세스 전환
컨텍스트 스위치
컨텍스트는 특정 순간의 CPU 레지스터 및 프로그램 카운터의 내용을 나타냅니다.
CPU는 다른 프로세스로 전환하여 현재 프로세스의 상태를 저장하고 다른 프로세스의 상태를 복원해야 합니다.
PCB 업데이트
모드 전환
사용자 모드와 커널 모드 간 전환
동기화 및 상호 배제
개념
중요한 자원
한 번에 하나의 프로세스만 사용할 수 있습니다.
프린터, 변수, 데이터 등
진입 지역
크리티컬 섹션 진입 가능 여부 확인
중요 섹션
중요한 리소스에 액세스하는 프로세스의 코드
출구 지역
중요 섹션에 액세스하고 있다는 플래그를 지웁니다.
남은 면적
나머지 코드
프로세스 동기화
직접적인 제한 관계
프로세스 간의 관계는 직접적인 협업이며 프로세스의 동시성은 비동기적입니다.
상호 배타적
간접적인 제약
한 프로세스가 중요한 리소스에 액세스하면 다른 프로세스는 기다려야 합니다.
기준
무료로 입장 가능
바쁘다면 기다려라
제한된 기다림
제한된 시간 내에 크리티컬 섹션 진입 보장
양보하고 기다려라
프로세스가 임계 구역에 진입할 수 없을 때 프로세서는 즉시 해제되어 프로세스가 바쁜 대기 상태에 빠지는 것을 방지합니다.
상호 배타적인 방법
소프트웨어 구현 방법
단일 마크 방식
더블마크 방식 먼저 확인
더블마크방식 사후검사
피터슨 알고리즘
두 프로세스가 임계 영역에 들어가 무기한 대기하는 것을 방지하기 위해 변수 회전이 설정됩니다.
하드웨어 구현 방법
인터럽트 마스킹 방식
하드웨어 명령 방법
테스트 및 세트
교환
하드웨어 구현 방법의 장점
여러 프로세스에서 작동
결점
배고픈 일이 발생할 수 있습니다
뮤텍스 잠금
습득하다
자물쇠를 얻다
풀어 주다
잠금 해제
신호
PV 작동은 실제로 두 개의 무중단 프로세스로 구성됩니다.
p 작업은 대기 작업으로, 리소스를 사용할 수 있을 때까지 기다리는 것을 의미합니다. 리소스를 사용할 수 없으면 차단 상태가 됩니다. p 작업 중 프로세스가 실행 상태입니다.
V 연산은 단일 연산으로, 시스템에서 할당할 수 있는 자원의 수가 1개가 되도록 프로세스가 자원을 해제하는 것을 의미한다.
정수 세마포어
기록 신호기
세마포어를 사용하여 프로세스 동기화 달성
세마포어를 사용하여 프로세스 상호 배제 구현
뮤텍스의 초기 값은 일반적으로 1입니다. 이는 한 번에 하나의 프로세스만 임계 섹션에 들어갈 수 있음을 의미합니다. 0이면 프로세스가 임계 영역에 진입했으며 임계 영역 외부에서 대기 중인 프로세스가 없음을 의미합니다. 뮤텍스가 0보다 작으면 임계 구역에 프로세스가 있다는 의미입니다. 뮤텍스의 절대값은 임계 구역 외부에서 대기 중인 프로세스의 수를 나타냅니다.
세마포어를 사용하여 전구체 구현
관리
프로세스 동기화 도구
보장된 프로세스 상호 배제
프로세스 간 동기화 및 상호 배제 가능
한 번에 하나의 프로세스만 공유 리소스를 사용합니다.
공유 리소스를 나타내는 데이터 구조와 해당 공유 데이터 구조에서 실시간으로 작동하는 일련의 프로시저로 구성된 리소스 관리 프로그램
신호는 V 동작과 다릅니다. 조건으로 인해 프로세스가 차단되지 않으면 신호가 영향을 미치지 않습니다.
동기화 문제
생산자 소비자 문제
독자-작가 문제
먼저 읽어보세요
먼저 쓰세요
철학자들의 식사 문제
가능한 문제: 모두가 젓가락을 잡을 때(탐욕 알고리즘) 교착 상태가 발생할 수 있습니다.
흡연자 문제
이중 자물쇠
정의
리소스를 놓고 경쟁하는 여러 프로세스로 인해 발생하는 교착 상태
이러한 프로세스는 외부 힘 없이는 계속될 수 없습니다.
원인
1) 시스템 자원 경쟁
시스템의 양도할 수 없는 리소스, 수량이 여러 프로세스를 만족시키기에 충분하지 않습니다.
2) 공정진행순서가 불법인 경우
리소스 요청 및 해제 순서가 잘못됨
교착상태가 발생하기 위한 필요조건
1) 상호배타적 조건
특정 리소스는 특정 기간 동안 하나의 프로세스에서만 점유됩니다.
2) 조건 박탈 없음
다른 프로세스가 선점할 수 없음
3) 요청 및 보유 조건
프로세스가 자원을 점유하면서 동시에 다른 자원을 요청했으며, 점유된 자원은 해제되지 않습니다.
4) 루프에서 대기
각 프로세스가 점유한 자원을 다음 프로세스가 동시에 요청함
교착상태 처리 전략
1) 교착상태 방지
네 가지 필수 조건 중 하나 이상을 파괴합니다.
1. 상호배제조건의 파기
시스템 리소스 공유 허용
2. 비박탈 조건을 파괴한다
리소스를 점유하고 있어 계속 실행할 수 없는 프로세스를 해제합니다.
3. 요청을 파기하고 조건을 유지합니다.
필요한 모든 자원을 한꺼번에 신청하고 자원이 충족될 때까지 가동하지 마십시오.
4. 루프를 끊고 기다리세요
순차적 자원 할당 방식 채택
2) 교착상태 회피
시스템이 안전하지 않은 상태로 들어가는 것을 방지
1. 시스템 보안 상태
시스템은 리소스를 할당하기 전에 먼저 할당의 보안을 계산해야 합니다.
안전한 상태
교착상태가 없어야 함
안전하지 않은 상태
교착 상태에 빠질 수 있음
2. 뱅커 알고리즘
시스템이 안전하지 않은 상태로 들어가는 것을 방지
3) 교착 상태 감지 및 해제
교착상태 발생을 감지하고 교착상태를 완화하기 위한 몇 가지 조치를 취합니다.
프로세스에 자원을 할당할 때 시스템이 아무런 조치를 취하지 않는 경우 교착 상태 감지 및 해제 방법을 제공해야 합니다.
자원 할당 맵
상자 안의 원은 자원을 나타냅니다.
프로세스-리소스 지향 에지 호출 요청
교착상태 해제
1) 자원 부족
교착 상태가 중단된 프로세스는 리소스를 점유하여 다른 교착 상태 프로세스에 할당합니다.
2) 프로세스 실행 취소
교착 상태에 빠진 프로세스의 일부 또는 전체를 강제로 취소하고 리소스를 박탈합니다.
3) 프로세스 롤백
교착 상태를 방지할 수 있을 만큼 교착 상태 프로세스를 롤백합니다.
비교하다
교착상태와 기아상태의 차이
굶주림
프로세스 실행이 무기한 연기됩니다.
기아 상태에 들어가는 프로세스는 하나만 있을 수 있습니다.
준비되었거나 차단될 수 있습니다.
이중 자물쇠
프로세스가 교착상태에 도달하여 앞으로 나아갈 수 없습니다.
교착 상태에 들어간 프로세스 수는 2개 이상이어야 합니다.
교착상태가 발생한 프로세스는 차단된 상태여야 함
3장 메모리 관리
개념
메모리 관리는 다중 프로그램의 동시 실행을 더 잘 지원하기 위한 것입니다.
프로그램 연결 및 로딩
링크
정적 링크
라이브러리 함수는 로드 모듈에 연결되고 상대 주소가 수정됩니다.
로드 시 동적 연결
메모리에 로드할 때 로드하는 동안 링크
런타임 동적 연결
실행 중에 사용되지 않는 개체 모듈은 메모리에 로드되거나 모듈에 연결되지 않습니다.
짐
절대 마운트 (공전)
프로그래밍 단계에서
단일 프로그램에 적합하며 논리 주소와 메모리 주소는 정확히 동일합니다.
프로그래머나 컴파일 또는 어셈블리를 통해 제공될 수 있습니다.
재배치 가능한 부하
정적 재배치
로딩 중에 대상 프로그램의 명령어와 데이터 주소를 수정하는 과정을 재배치라고 합니다.
로딩 후 변경하지 마세요
로딩 시 논리 주소를 최종 물리 주소로 수정
동적 런타임 로딩
동적 재배치
로더는 모듈을 메모리에 로드한 후 로드된 모듈의 상대 주소를 절대 주소로 즉시 변환하지 않고 실행될 때까지 변환 프로세스를 연기합니다.
로딩 후 교체 가능
메모리에 로드된 후의 주소는 모두 상대 주소입니다.
메모리 보호
물리적 주소를 얻기 위해 재배치 값에 논리적 주소를 추가합니다.
경계 주소 레지스터는 범위를 벗어났는지 여부를 결정합니다.
재배치 레지스터와 경계 주소 레지스터를 로드하는 것은 운영 체제 커널에 의해 완료되고 사용자가 수정할 수 없는 특권 명령어를 사용해야 합니다.
메모리 공유
읽기 전용 영역만 공유할 수 있습니다.
재진입 코드(순수 코드)는 여러 프로세스의 액세스를 허용하지만 어떤 프로세스의 수정도 허용하지 않습니다.
재진입 기술은 들어오고 나가는 코드 전송을 줄이고 스왑 횟수를 줄여 시스템 성능을 향상시킵니다.
덮고 교환하기
씌우다
액세스할 프로그램 세그먼트는 서비스 지역에 배치되고 다른 세그먼트는 외부 메모리에 저장됩니다. 시스템은 원래 세그먼트를 호출하고 교체하기 전에 해당 세그먼트를 서비스 지역으로 전송해야 합니다.
교환
대기 중인 프로그램을 메모리에서 보조기억장치로 옮기는 것, 즉 중간스케줄링
지속적인 할당 관리
단일 연속 할당
시스템 영역은 운영체제가 사용하는 영역으로 낮은 주소 부분에 위치한다.
사용자 영역 메모리에는 사용자 프로그램이 하나만 있습니다.
오버레이 기술 사용
파티션 관리
최저 비용으로 멀티 프로그래밍을 만족시키는 가장 간단한 스토리지 관리 솔루션
고정 파티션 할당
사용자 메모리는 여러 개의 고정된 크기 영역으로 나뉘며 각 파티션은 하나의 작업만 로드합니다.
질문
1) 프로그램이 너무 커서 어떤 파티션에도 들어갈 수 없으므로 덮어쓰기 기술을 사용하십시오.
2) 프로그램이 너무 작아서 파티션에 배치되면 내부 조각화가 발생합니다.
동적 파티션 할당
시간이 지남에 따라 외부 조각화라고 하는 많은 작은 메모리 블록이 메모리에 생성됩니다.
컴팩트한 기술로 해결한 운영 체제는 프로세스를 이동하고 구성합니다.
할당 전략
첫 번째 적합 알고리즘
주소가 증가하는 순서로 링크
이웃 적응 알고리즘
메모리 할당 시 마지막 검색이 끝난 위치부터 검색을 시작합니다.
최적합 알고리즘
무료 파티션은 용량이 늘어나는 순서대로 무료 파티션 체인을 형성합니다.
외부 잔해물이 가장 많이 생성됨
최악의 적합 알고리즘
용량 내림차순으로 사용 가능한 파티션 체인을 형성합니다.
메모리 회수
접합 기술을 통한 자유 영역 병합
1) 복구 영역은 삽입 지점의 이전 여유 파티션에 인접해 있습니다.
두 개의 파티션을 병합하고 이전 파티션 테이블 항목의 크기를 두 파티션의 합으로 수정합니다.
2) 복구 영역은 삽입 지점 이후의 여유 파티션에 인접해 있습니다.
수정된 파티션 테이블 항목의 크기는 두 항목의 합입니다.
3) 복구 영역은 삽입 지점 전후의 두 파티션에 인접해 있습니다.
이전 파티션 테이블 항목의 크기를 세 항목의 합으로 수정합니다.
다음 파티션 테이블 항목 취소
4) 재활용 구역에는 인접한 자유 칸막이가 없습니다.
재활용 영역에 대한 새 테이블 항목을 생성하고 시작 주소와 크기를 입력하고 자유 파티션 체인을 삽입합니다.
시스템이 사용자에게 제공하는 물리적 주소 공간은 전체 공간 크기에서 페이지 테이블이나 세그먼트 테이블의 길이를 뺀 크기이다.
페이지 매김 관리
페이징 관리는 내부 조각화를 생성하지만 외부 조각화는 생성하지 않습니다.
프로세스의 블록을 페이지라고 하고, 메모리의 블록을 페이지 프레임이라고 합니다.
주소 구조는 가상 메모리의 주소 지정 공간 크기를 결정합니다.
시스템은 각 프로세스마다 페이지 테이블을 생성하고, 페이지 테이블은 메모리에 저장됩니다.
페이지 테이블의 시작 주소는 페이지 테이블 기본 주소 레지스터에 위치합니다.
페이지 크기가 결정되면 모든 페이지의 크기는 동일합니다(2의 거듭제곱).
주소 변환 기관
세분화 관리
외부 단편화 생성
세그먼트 내에서는 연속적이지만 세그먼트 간에 연속적일 필요는 없습니다.
분할은 사용자가 프로그래밍할 때 프로그램을 논리에 따라 여러 개의 논리적 세그먼트로 나누는 것입니다.
논리적 구조와 관련된
프로그램을 용이하게 하는 동적 연결
세그먼트 페이지 관리
내부 단편화 생성
시스템은 프로세스에 대한 세그먼트 테이블을 생성하고 각 세그먼트에는 페이지 테이블이 있습니다.
사용자 주소 공간 관리 및 할당에 대한 세분화된 접근 방식 물리적 주소 공간을 관리하고 할당하는 페이징 방법
한 번의 액세스에는 실제로 주 메모리에 대한 세 번의 액세스가 필요합니다.
가상 메모리 관리
특징
여러 번
작업이 여러 번 분할되어 메모리에 로드됩니다.
호환성
사용하지 않는 프로그램과 데이터를 메모리에서 리콜
가상
논리적으로 메모리 용량 확장
가상 메모리의 실제 용량 ≤ 메모리 용량 외부 저장 용량
가상 메모리의 최대 용량 ≤ 컴퓨터의 주소 비트가 수용할 수 있는 최대 용량
구현
1) 페이징 관리 요청
하드웨어 지원 필요
메모리, 외부 메모리, 인터럽트 메커니즘, 주소 변환 등
페이지 테이블 메커니즘
페이지 번호, 물리적 블록 번호, 상태 비트, 액세스 필드, 수정 비트, 외부 메모리 주소
페이지 오류 인터럽트 메커니즘
접근한 페이지가 메모리에 없으면 페이지 폴트 인터럽트(page Fault Interrupt)가 발생하고 이를 메모리로 전송하도록 시스템에 요청한다.
페이지 오류율은 페이지 크기, 할당된 물리적 블록 수, 교체 알고리즘 및 프로그래밍의 영향을 받습니다.
주소 변환 기관
페이지 프레임 할당
상주 세트
프로세스에 할당된 페이지 프레임 모음
프로세스에 할당된 페이지 프레임 수가 적을수록 주 메모리에 더 많은 프로세스가 상주하게 되어 CPU 활용도가 향상됩니다.
프로세스의 주 메모리에 페이지 수가 너무 적고 페이지 부재율이 상대적으로 높습니다.
메모리 할당 전략
1) 지역 교체의 고정 할당
프로세스에 일정 수의 물리적 블록을 할당합니다. 페이지 폴트가 발생한 후 프로세스에 할당된 메모리 페이지에서 페이지를 선택하여 호출합니다.
2) 변수 할당 전역 대체
적절하게 늘리거나 줄일 수 있는 특정 수의 물리적 블록을 할당합니다. 전역 교체: 사용 가능한 물리적 블록에서 블록을 선택하여 프로세스에 할당하고 누락된 페이지를 전송합니다.
3) 변수 교체 로컬 교체
페이지가 누락된 경우 이 프로세스만 메모리 페이지에서 한 페이지를 선택하여 호출할 수 있습니다.
물리적 블록 로딩 알고리즘
고정 할당 전략
1) 평균 분포 알고리즘
2) 비례배분
프로세스 규모에 따라 비례적으로 할당
3) 우선순위 배정
긴급성에 따른 할당
페이지를 로드하는 시간
실행하기 전에 로드
런타임 중에 호출됨
대체 알고리즘
1) 최적의 교체 알고리즘
절대 사용하지 않을 페이지나 가장 오랫동안 사용하지 않은 페이지를 제거하세요.
2) 선입 선출 알고리즘
Belady 이상이 발생합니다
할당된 물리 블록의 수가 증가하고, 페이지 폴트 수가 감소하는 대신 증가합니다.
3) 최근 및 가장 오랫동안 사용되지 않음
레지스터 및 스택에 대한 하드웨어 지원이 필요합니다.
최근 방문하지 않은 페이지를 계산해야 하기 때문에 비용이 많이 듭니다.
4) 시계 알고리즘
5) 향상된 클럭 알고리즘
수정 비트 추가됨
사용되거나 수정되지 않은 페이지의 우선순위를 정하세요
액세스 비트 A와 수정 비트 M을 기반으로 판단
지터 및 작업 세트
지터
방금 스왑 아웃된 페이지를 즉시 다시 스왑 인해야 함(페이지가 자주 로드되고 로드됨)
높은 페이지 오류율
이유
시스템에서 동시에 실행되는 프로세스가 너무 많고 각 프로세스에 할당된 물리적 블록이 너무 적습니다.
작업 세트
특정 기간 내에 프로세스가 액세스할 페이지 모음
지터 방지
2) 요청 세그먼트 관리
3) 요청 세그먼트 페이지 관리
4장 문서 관리
파일 속성
이름
유형
창조자
소유자
위치
크기
보호하다
시간
파일은 추상 데이터 유형, 데이터 구조입니다.
파일 제어 블록 FCB
파일 디렉토리 항목
컨트롤 파일이 요구하는 다양한 정보를 저장하고 있는 데이터 구조
이름으로 액세스
포함 내용: 기본정보, 접근통제 정보, 이용정보
인덱스 노드 inode
디스크의 파일 디렉터리
디스크 인덱스 노드
각 파일에는 고유한 디스크 인덱스 노드가 있습니다.
기본 식별자, 유형, 권한, 물리적 주소, 길이, 링크 수, 액세스 시간
메모리 인덱스 노드
메모리에 저장된 인덱스 노드
파일이 열리면 디스크 인덱스 노드가 메모리 인덱스 노드로 복사됩니다.
노드 번호, 상태, 접속 횟수, 논리 장치 번호, 링크 포인터
파일 작업
열고 닫다
열려 있는
파일명을 기준으로 디렉터리를 검색하고 외부 저장소에 있는 지정된 파일의 속성(물리적 위치 포함)을 메모리에 있는 열린 파일 테이블의 항목으로 복사한 후 사용자에게 항목 번호를 반환하는 호출 open을 호출합니다.
메모리 파일 디렉터리 테이블에 FCB를 저장합니다.
폐쇄
닫기를 호출하면 시스템이 파일 테이블을 열어 이 항목을 삭제합니다.
읽기 호출 중에 파일이 메모리에 없으면 프로세스는 절전 모드로 전환됩니다.
파일 보호
비밀번호 보안
비밀번호는 시스템 내부에 저장되어 있어 충분히 안전하지 않습니다.
암호화 보호
파일 도난 방지
액세스 제어
사용자가 파일에 액세스하는 방법 제어
파일의 논리적 구조
구조화되지 않은 파일(스트리밍 파일)
순차적으로 레코드로 구성(순서대로 컬렉션)
구조화된 파일(녹음파일)이 있습니다.
시퀀스 파일
문자열 구조
입금 시간별로 정렬
순차적 구조
키워드로 정렬
인덱스 파일
고정 길이 레코드 파일
가변 길이 레코드 파일
순차 검색
인덱스 시퀀스 파일
N개의 레코드가 √N개의 그룹으로 나누어져 있으며 인덱스 테이블에는 √N개의 항목이 있으며 총 √N/2 √N/2개의 검색이 필요합니다.
직접 파일/해시 파일
레코드의 키 값이나 해시 함수로 변환된 키 값을 바탕으로 레코드의 물리적 주소가 결정됩니다.
파일의 물리적 구조
배당
연속 할당
순차 접근/임의 접근 지원
빠른 액세스 속도
파일을 반복적으로 삭제하면 외부 조각화가 발생합니다.
추가, 삭제, 수정이 불편함
파일 디렉토리 항목의 파일 물리적 주소 필드에는 첫 번째 블록의 주소와 파일 할당 영역의 길이가 포함됩니다.
링크 할당
개별 할당 방법
외부 잔해 제거
확인이 불편함
암시적 링크
순차 접근에만 적합
디렉토리에는 파일의 첫 번째 블록에 대한 포인터와 마지막 블록에 대한 포인터가 포함되어 있습니다.
내부 단편화 생성
명시적 링크
메모리에 링크 포인터를 명시적으로 저장하는 링크 테이블을 FAT(파일 할당 테이블)이라고 합니다. 각 항목은 다음 디스크 블록 번호를 저장합니다.
전체 디스크에는 단 하나의 FAT가 있으며, 이는 데이터 구조이기도 합니다.
FAT 항목은 물리적 디스크 블록에 일대일로 대응합니다. 특수 번호 -1은 마지막 블록을 나타내는 데 사용될 수 있으며, 다른 숫자는 FAT의 링크 관계를 기록하는 데 사용되지 않습니다. 각 블록을 표시할 뿐만 아니라 여유 디스크 조각도 표시합니다.
인덱스 할당
무작위 액세스 지원
액세스는 연속 할당만큼 빠르지 않습니다.
외부 잔해 없음
혼합 인덱스 할당
목차
디렉토리 구조
단일 디렉터리 구조
이름으로 액세스
검색 속도가 느리고, 중복된 이름은 허용되지 않으며, 공유가 불편합니다.
보조 디렉터리 구조
이름 중복 문제 해결
파일 분류 불가, 유연성 부족
트리 디렉토리 구조
프로세스의 파일 액세스는 현재 디렉터리와 동일합니다.
중간 노드는 경로명별로 단계별로 접근해야 하므로 디스크 접근 횟수가 늘어납니다.
비순환 그래프 디렉터리 구조
공유 파일의 경우 실제 파일은 하나만 존재하며 모든 변경 사항은 다른 사용자에게 표시됩니다.
디렉토리 구현
선형 목록
파일 이름과 포인터의 선형 목록을 사용합니다.
체인 구조를 사용하면 파일 삭제 시간을 줄일 수 있습니다.
시간이 많이 걸리는 검색
해시 테이블
빠르게 찾기
갈등을 피해야 함
파일 공유
정적 공유
하드링크(인덱스 노드 기반)
파일의 물리적 주소와 파일 속성 정보는 더 이상 디렉토리 항목에 위치하지 않고 인덱스 노드에 위치합니다.
인덱스 노드에는 여러 사용자가 공유하고 있음을 나타내는 개수도 있습니다.
소프트 링크(심볼릭 링크 사용)
링크 파일을 생성하고 파일에 있는 경로명을 기준으로 파일을 찾습니다.
파일 소유자만이 해당 인덱스 노드에 대한 포인터를 갖습니다. 다른 사용자는 이 파일의 경로 이름만 가지고 있습니다.
파일에 액세스할 때마다 디스크를 여러 번 읽어야 하므로 비용이 많이 듭니다.
네트워크 파일을 공유할 때 파일이 있는 컴퓨터의 네트워크 주소와 파일 경로 이름만 제공하면 됩니다.
동적 공유
여러 사용자가 동시에 파일을 작업합니다.
파일 시스템
외부 저장소의 파일 시스템 구조
물리적 형식
섹터 분할, 불량 섹터 확인, 불량 섹터 교체
논리적 형식
디스크 파티션, 각 파티션의 전체 파일 시스템 초기화
생산하다
마스터 부트 레코드 MBR
활성 파티션을 확인하고 부팅 블록을 읽습니다.
부트 블록
MBR은 부트 블록의 프로그램을 실행하고 운영 체제를 시작합니다.
슈퍼 블록
파일 시스템의 모든 주요 정보를 포함합니다. 파일 시스템이 처음 시작되면 슈퍼 블록이 메모리로 읽혀집니다.
여유공간 관리
예: 비트맵
i 노드 영역
인덱스 노드는 연속적으로 저장되며 동일한 크기를 갖습니다.
루트 디렉토리
메모리의 파일 시스템 구조
사용자 영역
파일 설명자/파일 핸들
커널 영역
디렉토리 캐시
시스템 오픈 파일 테이블
단 하나
사용자가 파일 테이블을 엽니다.
시스템 열린 파일 테이블 인덱스를 포함합니다.
가상 파일 시스템
상위 사용자에게 통일된 표준 시스템 호출 인터페이스 제공 기본 특정 파일 시스템의 Shield 구현 차이점
하위 수준 파일은 특정 기능을 구현해야 합니다.
열린 각 파일은 통합 데이터 구조로 표시되는 주 메모리에 vnode를 생성합니다.
vnode는 주 메모리에만 존재합니다. inode는 주 메모리에 로드되고 외부 메모리에 저장됩니다.
파일 시스템 마운트(설치)
새로 마운트된 파일 시스템을 가상 파일 시스템에 등록하고, 메모리 마운트 테이블에는 각 파일 시스템에 대한 정보가 포함되어 있습니다.
새로 마운트된 파일 시스템은 가상 파일 시스템에 함수 주소 목록을 제공해야 합니다.
파일 시스템을 마운트 지점(상위 디렉터리)에 마운트합니다.
파일 공간 관리
수납공간 구분
물리디스크를 파일볼륨(논리디스크, 논리볼륨)으로 나누어
파일 볼륨은 여러 개의 물리적 디스크로 구성될 수 있습니다.
저장공간 초기화
파일 볼륨 초기화
디렉토리 영역
파일 디렉토리 정보 FCB, 디스크 저장 공간 관리에 사용되는 정보를 저장합니다.
파일 영역
파일 데이터 저장
공간 관리
무료 목록 방법
연속배분방식에 속함
파일에 대한 연속 저장 공간 할당
첫 번째 적응, 최선의 적응, 최악의 적응을 사용할 수 있습니다.
재활용은 동적 할당과 동일합니다.
무료 목록 방법
무료 디스크 체인
연결리스트처럼 사용 가능한 디스크 블록 연결
여유 디스크 블록은 다음 여유 디스크 블록에 대한 포인터를 저장합니다.
분배하다
Adaptation 알고리즘을 통해 조건에 맞는 디스크 블록을 찾아냅니다.
재활용
재활용된 디스크 블록을 체인 끝에 걸어두세요
할당 및 재활용은 간단하지만 비효율적입니다.
자유 범위 체인
여러 개의 연속적인 여유 디스크 블록이 여유 디스크 영역을 구성합니다.
익스텐트 길이는 익스텐트의 첫 번째 여유 디스크 블록에 기록되며 다음 익스텐트에 대한 포인터입니다.
분배하다
일반적으로 첫 번째 적응
재활용
인접한 자유 범위와 회수 영역 병합
할당과 재활용이 번거롭지만 효율적이다
비트맵 방식
이진 비트를 사용하여 디스크 블록이 사용되는지 여부를 나타냅니다.
디스크 번호 b = n×i j
n은 단어 길이를 나타냅니다.
i는 글꼴 크기(줄 번호)를 나타냅니다.
나는 = b/n
제거하다
j는 비트 번호(열 번호)를 나타냅니다.
j = b%n
나머지 가져가기
연속 배부와 불연속 배부 모두에 적용 가능
그룹 연결 방법
그룹 체인 블록(슈퍼 블록)은 사용 가능한 디스크 블록의 블록 번호와 다음 사용 가능한 디스크 블록 그룹의 번호를 저장하는 데 사용됩니다.
여유 디스크 블록의 블록 번호는 그룹 블록(범위)의 첫 번째 디스크 블록 번호입니다.
그룹 수는 제한되어 있습니다. 예를 들어, 100개의 여유 디스크 블록만 그룹을 형성할 수 있습니다.
다음 그룹에 사용 가능한 디스크 블록이 없으면 블록 번호는 -1로 설정됩니다.
분배하다
마지막 디스크 블록부터 할당하고 슈퍼 블록의 여유 디스크 블록 수를 변경합니다.
특정 블록에 다음 정보 그룹이 저장되어 있다면 해당 정보를 슈퍼 블록에 복사한 후 할당해야 합니다.
재활용
슈퍼 블록이 가득 차지 않은 경우
그런 다음 슈퍼 블록 바로 뒤에 재활용 블록을 삽입합니다.
슈퍼 블록이 가득 찬 경우
연결리스트와 유사한 헤드 삽입 방법
디스크
구조
디스크
길
부문
디스크 블록입니다
각 섹터는 동일한 용량을 가지며 가장 안쪽 섹터의 밀도가 가장 높습니다.
디스크
각 디스크 표면은 자기 헤드에 해당합니다.
실린더
모든 디스크에서 동일한 상대 위치를 갖는 트랙이 원통을 형성합니다.
디스크 주소는 (실린더 번호-디스크 번호-섹터 번호)로 표시됩니다.
디스크 스케줄링 알고리즘
읽고 쓰는 데 필요한 시간
시간을 추구
머리 팔 시작
걸린 시간
움직이는 머리
하나의 트랙을 확장하는 데 m이 걸리고 n 트랙을 확장해야 합니다.
=sm×n
전송 시간
읽기/쓰기 시간
회전 속도는 r, 읽고 쓴 바이트 수는 b, 각 트랙의 바이트 수는 N입니다.
=b/(rN)
지연
디스크 속도는 r
= 1/(2r)
디스크 스케줄링 알고리즘
탐색 시간에 직접적인 영향을 미칩니다.
선착순
가장 짧은 검색 시간부터 먼저
배고픔을 유발할 수 있음
스캔 알고리즘
자기 헤드는 가장 안쪽 또는 가장 바깥쪽 트랙으로 이동할 때 반대 방향으로만 이동할 수 있습니다.
가장 바깥쪽 또는 가장 안쪽 레이어가 요청을 처리하지 않더라도 반대 방향으로 이동하기 전에 여기로 이동해야 합니다.
배고픔을 유발하지 않을 것
알고리즘 보기
스캔 알고리즘 개선
헤드 이동 방향에 다른 요청이 없으면 직접 방향을 변경할 수 있습니다.
사이클 스캔 (엘리베이터 급파)
다양한 위치에 대한 스캐닝 알고리즘의 고르지 못한 응답 문제 해결
복귀 시 어떠한 요청에도 응답하지 않고 바로 출발지로 이동합니다.
가장 가장자리로 이동한 후에만 방향을 변경합니다. (스캐닝 알고리즘과 동일)
c-look 알고리즘
루프 스캔 개선
방향을 바꾸기 위해 가장자리로 이동할 필요가 없습니다. 이동 방향은 다른 요청 없이 변경할 수 있습니다.
대기 시간을 줄이는 방법
대체 번호 매기기
논리적으로 인접한 섹터를 물리적으로 분리된 상태로 유지
잘못된 이름 지정
같은 섹터의 섹터를 엇갈리게 하도록 함(예를 들어 섹터 0과 섹터 1을 다른 숫자로 섹터로 구분)
주소 구조 설계
실린더 번호-디스크 번호-섹터 번호
머리 이동 시간 감소
디스크 관리
디스크 초기화
물리적 형식
각 디스크 트랙을 섹터로 나누기
분할
디스크를 분할합니다. 각 파티션은 여러 개의 실린더로 구성됩니다.
논리적 형식
파일 시스템 생성
부트 블록
컴퓨터를 켜면 일련의 초기화 작업이 필요하며, 부트로더 프로그램을 실행하면 초기화 작업이 완료됩니다.
완전한 부트로더는 디스크의 고정 위치에 있는 디스크의 시작 블록(부트 블록)에 저장됩니다.
불량 블록 처리
불량 블록은 하드웨어 오류입니다.
단순 디스크의 경우
불량 블록은 운영 체제에 불투명합니다(표시됨).
복잡한 디스크의 경우
섹터 예비
복잡한 디스크의 경우 디스크 컨트롤러는 불량 블록 연결 목록을 유지하고 물리적 포맷 중에 이를 초기화하며 예비 섹터를 사용하여 불량 블록을 교체합니다.
솔리드 스테이트 드라이브 SSD
원칙
플래시 메모리 기반 전기적으로 지울 수 있는 ROM(EEPROM)에 속합니다.
구성
플래시 변환 레이어
번역 논리 블록 번호
해당 페이지 찾기
저장 매체
다중 플래시 메모리 칩
각 칩에는 여러 블록이 포함되어 있습니다.
각 블록에는 여러 페이지가 포함되어 있습니다.
읽기 및 쓰기 성능
페이지 단위
블록 단위로
무작위 액세스 지원
빠른 읽기 속도 느린 쓰기 속도
기계식 하드 드라이브와의 비교
SSD는 기계식 하드 드라이브보다 읽기 및 쓰기 속도가 빠르고 임의 액세스가 가능합니다.
SSD는 조용하고 소음이 없습니다.
SSD의 특정 블록은 여러 번 삭제되면 손상됩니다. 쓰기 작업이 많아도 기계식 하드 디스크 섹터가 손상되지 않습니다.
웨어 레벨링
블록 전체의 평균 삭제 작업
동적 웨어 레벨링
데이터를 쓸 때 누적된 삭제 횟수가 적은 플래시 메모리 블록에 우선 순위를 부여하십시오.
정적 웨어 레벨링
이전 블록은 읽기 작업을 담당합니다. 새 블록은 쓰기 작업을 담당합니다.
동적보다 정적이 낫다
5장 IO 관리
장비 분류
블록 장치
데이터 교환은 블록 단위로 이루어집니다.
높은 전송률
캐릭터 장치
데이터 교환은 문자로 이루어집니다.
낮은 전송 속도, 주소 지정 불가
저속 장치
마우스와 키보드
중간 속도 장비
인쇄기
고속 장비
디스크 드라이브, CD 드라이브
IO 인터페이스
장치 컨트롤러
CPU와 장치 사이에 위치
장치 컨트롤러와 CPU 간의 인터페이스
데이터 라인, 주소 라인, 제어 라인을 포함합니다.
장치 컨트롤러와 장치 간의 인터페이스
컨트롤러에는 하나 이상의 장치 인터페이스가 있습니다.
io 로직
장비 제어 실현
장치 컨트롤러 기능
CPU를 식별하는 명령을 받아들입니다.
데이터 교환
장치 상태 식별 및 보고
주소 인식
데이터 버퍼
오류 제어
io 포트
CPU가 직접 접근할 수 있는 장치 컨트롤러에 등록
즉, 여러 개의 io 포트가 io 인터페이스를 형성합니다.
데이터 레지스터
상태 레지스터
제어 레지스터
CPU와 IO 포트의 통신 방식
독립적인 주소 지정
각 포트에 포트 번호를 할당하면 운영 체제만 특수 io 지침을 사용하여 포트에 액세스할 수 있습니다.
통합 주소 지정
각 포트에는 고유한 메모리 주소가 할당됩니다.
io 제어 방법
직접 프로그램 제어
CPU는 해당 단어가 io 컨트롤러의 데이터 레지스터에 있는지 확인할 때까지 루프를 통해 주변 장치 상태를 확인합니다.
인터럽트 구동 모드
io 장치가 CPU 작동을 적극적으로 중단하고 서비스를 요청하도록 허용합니다. 이를 통해 CPU를 확보합니다.
데이터를 전송해야 할 때마다 CPU를 중단합니다.
DMA 모드
IO 장치와 메모리 간의 직접적인 데이터 교환 경로 설정
요청된 데이터 전송 일괄 처리가 끝나면 CPU를 중단합니다.
CPU가 명령을 내릴 때 연속적인 데이터 블록만 읽거나 쓸 수 있습니다.
채널 제어 모드
입력과 출력을 특별히 담당하는 프로세서
하드웨어의 일부입니다
CPU는 실행을 위한 채널 프로그램과 io 장치의 위치를 나타내는 io 명령을 발행합니다.
채널은 메모리의 채널 프로그램을 실행합니다.
채널은 CPU와 메모리를 공유합니다.
io 소프트웨어 계층
사용자 io 소프트웨어
스풀링 기술 구현
가상 장치 기술
전용장비 활용도 향상
전용기기를 공유기기로 전환
CPU의 빠른 속도와 IO 장치의 느린 속도 사이의 모순을 완화합니다.
소프트웨어를 통해
다중 프로그래밍 기술 지원이 필요합니다.
이 시스템은 디스크의 고정 영역인 입력 및 출력 웰에서 두 영역을 엽니다.
메모리에서 두 개의 버퍼(입력 버퍼와 출력 버퍼)를 엽니다.
공유 프린터
전용장치
개별 프로세스에서 직렬 사용을 허용하는 장치
정적 할당 사용
공유 장치
여러 프로세스가 함께 사용할 수 있도록 하는 장치
거시적 의미의 동시 사용 현미경으로 보면 여전히 교대로 나타납니다.
동적 할당 사용
공유 인쇄 원칙
시스템은 각 사용자가 요구하는 인쇄 요청을 디스크의 입력 공간에 넣고 디스크, 메모리 및 CPU 간의 속도 차이를 사용하여 미세한 교대와 거시적인 동시를 달성합니다.
장치 독립적 소프트웨어(장치 독립적 소프트웨어)
독립
사용자가 프로그래밍하는 장치는 실제 장치와 아무 관련이 없습니다.
기능
논리적 장치 테이블 관리
하나의 시스템 논리 장치 테이블 LUT만 설정
사용자별 논리 장치 테이블 LUT 설정
오류 제어
장비 할당 및 재활용
할당 시 고려되는 요소
장치 고유 속성
장치 할당 알고리즘
장치 할당 보안
안전한 유통방식
프로세스가 io 요청을 발행한 후 차단 상태로 들어가고 io 작업이 완료될 때까지 해제되지 않습니다.
CPU 및 IO 장치가 직렬 작업이 됨
안전하지 않은 할당 방법
프로세스가 io 요청을 발행한 후에도 계속 실행되며 io 요청을 충족할 수 없는 경우에만 차단에 들어갈 수 있습니다.
교착상태 가능
할당 전략
정적 할당
처음부터 필요한 모든 자원을 할당
동적 할당
프로세스 실행 중에 필요에 따라 할당을 계속합니다.
장치 할당 데이터 구조
채널, 컨트롤러, 장치 관계
장치 제어 테이블 DCT
특정 장치를 나타내며, 테이블 항목 내용은 장치의 각 속성입니다.
컨트롤러 제어 테이블 COCT
채널 제어 테이블 CHCT
각 채널은 CHCT에 해당합니다.
시스템 장치 테이블 SDT
모든 장치 포함
과제 단계 개선
사용자가 제공한 논리적 장치 이름
논리적 장치 이름과 물리적 장치 이름의 매핑을 통해(논리 장치 테이블 LUT)
LUT 항목에는 논리적 장치 이름, 물리적 장치 이름 및 장치 드라이버 항목 주소가 포함됩니다.
버퍼 관리
목적
CPU 처리 속도보다 입출력 속도가 느려서 발생하는 데이터 축적 문제 해결
단일 버퍼
각 데이터 조각의 처리 시간을 계산합니다.
초기 상태를 가정하고 다음에 이 상태에 도달하는 데 걸리는 시간을 계산합니다.
버퍼에 입력되는 시간은 T, 버퍼를 작업 영역으로 전송하는 시간은 M, 데이터를 처리하는 시간은 C이다.
초기 상태: 작업 영역이 가득 차고 버퍼가 비어 있음
각 데이터 블록을 처리하는 데 걸리는 시간: MAX (C, T) M
공식은 참고용이며 특정 문제를 자세히 분석하고 간트 차트(Gantt Chart)를 사용합니다.
이중 버퍼링
작업 영역이 비어 있고, 하나의 버퍼가 비어 있고, 하나의 버퍼가 가득 찼습니다.
각 데이터 블록을 처리하는 데 걸리는 시간: MAX(CM, T)
버퍼 풀
효율적인 입력 및 출력을 위한 동시 프로세스 활성화
io 스케줄링 구현
일부 알고리즘을 사용하여 io 요청을 처리하기 위한 올바른 순서를 결정합니다.
장치 보호
장치는 특수 파일로 표시되며 각 파일에는 FCB가 할당되고 권한이 설정됩니다.
장치 드라이버
하드웨어 장치에 대한 특정 제어
데이터가 위치한 디스크의 실린더 번호, 헤드 번호, 섹터 번호 등을 계산합니다.
장치마다 다른 드라이버가 필요합니다.
io API
문자 장치 인터페이스
호출 받기/넣기, 문자 장치에 문자 읽기 및 쓰기
블록 장치 인터페이스
읽기/쓰기 시스템 호출: 문자 읽기 및 쓰기 탐색: 수정
네트워크 장치 인터페이스
네트워크 소켓 인터페이스 소켓 시스템 호출: 네트워크 소켓을 생성하고 네트워크 프로토콜을 지정합니다. 바인딩: 소켓을 로컬 포트에 바인딩합니다. 연결: 소켓을 원격 주소에 연결합니다. 읽기/쓰기: 소켓에서 데이터를 읽고 씁니다.
차단/비차단 io
차단
프로그램은 io 시스템 호출을 발행하고 프로세스는 차단되어 대기합니다.
비차단 io
프로그램은 io 시스템 호출을 발행하고 시스템 호출은 빠르게 반환될 수 있으며 프로세스는 차단하고 기다릴 필요가 없습니다.