컴퓨터 운영 체제 2장 프로세스 설명 및 제어

(Tang Xiaodan 버전) 2 장 프로세스 설명 및 제어 마인드 맵 검토

2. 프로세스 설명 및 제어

2.1 전구체 다이어그램 및 프로그램 실행

전구체 지도

    • 프로세스 간의 실행 순서를 설명하는 데 사용되는 방향성 비순환 그래프

프로그램 실행

    • 프로그램은 특정 순서로 실행되어야 하는 여러 개의 프로그램 세그먼트로 구성되며 이전 프로그램이 완료된 후에야 다음 프로그램이 실행됩니다.
    • 특징:
      • 1. 시퀀스
      • 2. 휴무
      • 3. 재현성

프로그램이 동시에 실행

    • 조건: 선행 관계가 없는 프로그램만 동시 실행 가능
    • 특징:
      • 1. 간헐적
      • 2. 폐쇄의 상실
      • 3. 재현 불가능성

2.2 프로세스 설명

프로세스 정의 및 특성

    • 1. 프로세스의 정의
      • 프로세스는 프로그램의 실행 프로세스이며 시스템에서 자원 할당 및 스케줄링을 위한 독립된 단위입니다.
      • 프로세스 엔터티(프로세스 이미지, 프로세스라고 함)는 다음으로 구성됩니다.
        • 1. 프로그램 부분
        •  2. 관련 데이터 세그먼트
        • 3. PCB(중요)
    • 2. 공정의 특징
      • 1. 다이내믹
        • 프로세스는 생성 시 생성되고 스케줄링 시 실행되며 취소 시 소멸됩니다.
      • 2. 동시성
        • 여러 프로세스가 메모리에 공존하며 일정 시간 동안 동시에 실행할 수 있습니다.
      • 3. 독립
        • 독립적으로 동작하고, 독립적으로 자원을 획득하고, 독립적으로 스케줄링을 수용하는 기본 단위
      • 4. 비동기성
        • 독립적이고 예측할 수 없는 속도로 전진

프로세스의 기본 상태 및 전환

    • 프로세스의 3가지 기본 상태
      • 1. 준비 상태
      • 2. 실행현황
      • 3. 차단 상태
    • 프로세스의 세 가지 기본 상태 간 전환
      • 세 가지 기본 상태 전환

    • 생성 상태 및 중단 상태
      • 생성 및 중단을 추가한 후 5가지 기본 상태의 전환

작업 일시 중단 및 상태 전환 처리

    • Suspend: 기계의 자원은 제한되어 있으며, 자원이 부족한 경우 운영 체제는 메모리의 프로그램에 대해 합당한 조치를 취합니다. 일시 중단된 프로세스는 일시적으로 메모리에서 제거되고 조건이 허용되는 경우 메모리로 다시 호출되는 프로세스를 말합니다.
    • 일시 중지 작업 도입 (1) 최종 사용자의 요구. (2) 상위 프로세스의 요구 사항. (3) 부하 조절의 필요성. (4) 운영 체제의 요구 사항.
    • 일시 중지 작업 도입 후 프로세스의 세 가지 기본 상태 간 전환(실행 준비 차단)
      • 활성 준비(예약 가능) --> 정적 준비(예약 불가)
      • 대기 준비 --> 활성 준비
      • 활성 차단 --> 정적 차단
        • 차단 대기 이벤트 발생 후 정적 차단에서 정적 준비 상태로 변경됩니다.
      • 정적 차단 --> 활성 차단
    • 정지 후 프로세스의 5가지 기본 상태 간 전환을 소개합니다.
      • 상태 다이어그램

프로세스 관리의 데이터 구조

    • 컴퓨터의 다양한 리소스(하드웨어 및 정보 포함)의 사용 및 관리를 용이하게 하기 위해 OS는 리소스를 해당하는 다양한 데이터 구조로 추상화하고 운영 리소스에 대한 일련의 명령을 제공하며 사용자는 이러한 데이터 구조 및 운영 명령을 사용할 수 있습니다. 구현의 특정 세부 사항에 신경 쓰지 않고 관련 작업을 수행합니다.
    • 1. OS에서 리소스를 관리하고 프로세스를 제어하는 ​​데 사용되는 데이터 구조
      • 운영 체제 제어 테이블의 일반 구조

        • 1. 메모리 테이블
        • 2. 장비 테이블
        • 3. 파일 테이블
        • 4. 프로세스 테이블(PCB)
    • 2. PCB의 역할
      • PCB는 프로세스가 시스템에 존재한다는 유일한 신호입니다.
        • 1. 독립운전 기본단위의 상징으로
        • 2. 간헐 운전 실현 방법
        • 3. 공정관리에 필요한 정보 제공
        • 4. Process Scheduling에 필요한 정보 제공
        • 5. 다른 프로세스와의 동기화 및 통신 실현
    • 3. PCB의 정보
      • 1. 프로세스 식별자
        • 프로세스를 고유하게 식별
      • 2. 프로세서 상태
        • 프로세서의 각종 레지스터에 대한 내용으로 구성되어 있으며, 프로세스가 전환될 때 해당 PCB에 프로세서 상태 정보를 저장하여 프로세스가 다시 스케줄링될 때 중단점부터 계속 실행할 수 있도록 해야 합니다.
      • 3. 공정 일정 정보
        • 운영 체제는 프로세스를 예약할 때 프로세스 예약에 대해 알아야 합니다.
          • 프로세스 상태
          • 프로세스 우선 순위
          • 프로세스 스케줄링에 필요한 추가 정보
          • 이벤트
      • 4. 프로세스 제어 정보
        • 프로그램 및 데이터 주소
        • 프로세스 동기화 및 통신 메커니즘
        • 리소스 목록
        • 링크 포인터
    • 4. PCB 구성
      • 선형 방식
      • 링크 방법
      • 인덱스 방법

2.3 프로세스 제어

프로세스 생성

    • 프로세스 계층
      • 유닉스 계열 시스템
        • 프로세스를 생성하는 프로세스를 부모 프로세스라고 하고, 생성된 프로세스를 자식 프로세스라고 하며, 자식 프로세스는 계속해서 프로세스를 생성하여 프로세스의 계층을 형성합니다.
        • 자식 프로세스는 부모 프로세스가 소유한 리소스를 상속할 수 있습니다. 상위 프로세스가 취소되면 모든 하위 프로세스가 취소되어야 합니다.
      • 윈도우
        • 프로세스 계층 구조의 개념이 없으며 모든 프로세스가 동일합니다.
        • 프로세스가 다른 프로세스를 생성한 후 생성 프로세스는 생성된 프로세스를 제어하는 ​​데 사용할 수 있는 핸들을 얻습니다. 핸들을 전달할 수 있습니다
    • 프로세스 트리
      • 분기 주제

    • 프로세스 생성을 유발하는 이벤트
      • 사용자 로그인
        • 로그인 시스템이 성공하면 시스템은 사용자를 위한 프로세스를 생성하고 준비 대기열에 넣습니다.
      • 작업 스케줄링
        • 외부 저장소에서 메모리로 작업 로드 및 프로세스 생성
      • 서비스를 제공하다
        • 사용자가 인쇄와 같은 요청을 하면 시스템에서 인쇄 프로세스를 생성합니다.
      • 신청 요청
        • 사용자가 직접 프로세스를 생성해야 함
    • 프로세스 생성
      • 1. 빈 PCB 신청
      • 2. 새 프로세스를 실행하는 데 필요한 리소스 할당
      • 3. PCB 초기화
      • 4. 준비 큐가 비어 있으면 새 프로세스를 큐에 삽입하십시오.

프로세스 종료

    • 정상 종료
    • 비정상 종료
    • 분기 주제

프로세스 차단 및 깨우기

    • 프로세스를 차단하고 깨우는 이벤트
      • 시스템에서 공유 리소스를 요청하지 못했습니다.
      • 작업이 완료될 때까지 대기
      • 새로운 데이터가 도착하지 않았습니다
      • 새로운 작업이 도착하기를 기다리는 중

프로세스 정지 및 활성화

2.4, 프로세스 통신

프로세스 통신 유형

    • 공유 메모리 시스템
      • 공유 메모리 시스템에서 통신 프로세스는 프로세스가 통신할 수 있는 특정 데이터 구조 또는 메모리 영역을 공유합니다.
        • 공유 데이터 구조 기반 통신 방식
        • 공유 저장 영역 기반 통신 방식
    • 파이프라인 통신 시스템
      • 소위 "파이프"는 파이프 파일이라고도 하는 두 당사자 간의 통신을 달성하기 위해 읽기 프로세스와 쓰기 프로세스를 연결하는 데 사용되는 공유 파일을 나타냅니다. 파이프라인(공유 파일)에 입력하는 송신 프로세스(즉, 쓰기 프로세스)는 많은 양의 데이터를 바이트 스트림의 형태로 파이프라인에 보내고, 수신 프로세스(즉, 읽기 프로세스)는 파이프라인을 수신하는 데이터는 파이프라인으로부터 수신(읽기)됩니다.
    • 메시징 시스템
      • 포맷된 메시지는 통신 데이터를 메시지에 캡슐화하는 단위로 사용되며 OS에서 제공하는 일련의 통신 명령(기본값)을 사용하여 프로세스 간에 메시지를 전송하여 프로세스 간 데이터 교환을 완료합니다. 현재 가장 널리 사용되는 프로세스 통신 메커니즘 유형입니다.
    • 클라이언트-서버 시스템
      • 소켓
      • 원격 프로시저 호출 및 원격 메서드 호출
        • 원격 프로시저 호출은 로컬 프로시저 호출과 동일하게 보이며, 호출자는 호출 프로시저가 다른 호스트(원격)에서 실행되고 있다고 느끼지 않습니다.

메시지 전달 통신 구현

    • 직접 통신
      • 다이렉트 메시지 패싱 시스템은 다이렉트 커뮤니케이션 방식을 채택하고 있다. 즉, 발신 프로세스는 OS가 제공하는 발신 명령(원시 언어)을 이용하여 메시지를 타겟 프로세스로 직접 전송한다.
    • 간접 통신(사서함 통신)
      • 랜덤 액세스 메모리의 공용 버퍼에 설정되어 송신 프로세스가 대상 프로세스로 보낸 메시지를 임시로 저장하는 데 사용되며, 수신 프로세스는 송신 프로세스가 자신에게 보낸 메시지를 이 엔터티에서 꺼낼 수 있습니다. 메시지는 사서함에 안전하게 보관되며 승인된 의도된 사용자만 언제든지 메시지를 읽을 수 있습니다.

2.5, 쓰레드의 개념

쓰레드의 도입

    • OS에 프로세스를 도입하는 목적은 여러 프로그램이 동시에 실행되어 자원 활용도와 시스템 처리량을 향상시키는 것입니다. 그런 다음 OS에 스레드를 도입하는 것은 동시 실행 중에 프로그램의 시간과 공간 오버헤드를 줄여서 OS가 더 나은 동시성을 갖도록 하는 것입니다.
    • 프로세스의 두 가지 기본 속성
      • 프로세스는 리소스를 소유할 수 있는 독립적인 단위입니다.
      • 프로세스는 또한 독립적으로 스케줄링되고 디스패치될 수 있는 기본 단위입니다.
    • 전통적인 OS에서 프로세스는 독립적인 스케줄링과 할당을 위한 기본 단위이므로 프로세스는 독립적으로 실행될 수 있는 기본 단위입니다. 예약될 때마다 컨텍스트 전환이 필요하고 오버헤드가 높습니다.
    • 위의 결함을 해결하기 위해 프로세스의 두 가지 기본 속성을 OS에서 분리하여 별도로 처리할 수 있습니다. 즉, 스케줄링 및 할당의 기본 단위를 리소스 소유권의 기본 단위로 간주하지 않습니다.

스레드와 프로세스 비교

    • 스케줄링의 기본 단위
      • 쓰레드를 도입한 OS에서 쓰레드는 스케줄링과 디스패치의 기본 단위로 사용되기 때문에 쓰레드는 독립적으로 실행할 수 있는 기본 단위이다. 쓰레드 전환 시 적은 양의 등록 내용(리소스)만 저장하고 설정하면 되며 전환 비용이 프로세스에 비해 훨씬 저렴하다.
    • 동시성
      • 프로세스가 동시에 실행될 수 있을 뿐만 아니라 프로세스의 여러 스레드가 동시에 실행될 수 있으며 프로세스의 모든 스레드도 동시에 실행될 수 있습니다. 마찬가지로 서로 다른 프로세스의 스레드가 동시에 실행될 수 있습니다.
    • 자원이 있다
      • 프로세스는 리소스를 소유할 수 있으며 시스템에서 리소스 소유권의 기본 단위 역할을 합니다. 그러나 스레드 자체는 시스템 리소스를 소유하지 않고 독립적인 작업을 보장할 수 있는 몇 가지 필수 리소스만 소유합니다. 여러 스레드가 프로세스가 소유한 리소스를 공유하도록 허용
    • 독립
      • 프로세스 높음, 스레드 낮음
    • 시스템 오버헤드
      • 스레드의 전환 비용도 프로세스보다 훨씬 낮습니다.
    • 다중 프로세서 시스템 지원
      • 다중 스레드 프로세스의 경우 프로세스의 여러 스레드가 여러 프로세서에 할당되어 병렬로 실행될 수 있습니다.

스레드 상태 및 스레드 제어 블록

    • 세 가지 상태
      • 실행 상태
      • 준비 상태
      • 차단된 상태
    • 스레드 제어 블록 TCB

다중 스레드 OS의 프로세스 속성

    • 프로세스는 리소스를 소유할 수 있는 기본 단위입니다.
    • 여러 스레드가 동시에 실행될 수 있음
    • 프로세스는 더 이상 실행 가능한 엔터티가 아닙니다.
      • 다중 스레드 OS에서 스레드는 독립적인 작업(또는 스케줄링)의 기본 단위로 간주됩니다. 이 시점에서 프로세스는 더 이상 기본 실행 가능한 엔터티가 아닙니다. 소위 프로세스는 "실행 중" 상태에 있으며 이는 실제로 프로세스의 스레드가 실행 중임을 의미합니다.

2.6 스레드 구현

스레드 구현

    • 커널 지원 스레드
    • 사용자 수준 스레드
    • 콤비네이션

추천

출처blog.csdn.net/m0_52559040/article/details/124058115