운영체제 chapter 3

Yk Lee·2023년 3월 23일
0

운영체제

목록 보기
6/8

이전 개념 요약

  • 컴퓨터 플랫폼은 하드웨어 리소스 모음으로 구성된다.
  • 컴퓨터 응용 프로그램은 몇가지 작업을 수행하도록 개발되었습니다.
  • 특정 하드웨어 플랫폼에 대해 어플리케이션을 직접 작성하는 것은 비효율적이다.
  • OS는 응요 프로그램이 사용할 수 있는 편리하고 기능이 풍부하며 안전하고 일관된 인터페이스를 제공하도록 개발되었다.
  • OS는 응용 프로그램에서 요청하고 액세스할 수 있는 자원들을 추상적으로 표현가능하고 일관성을 제공해준다고 생각할 수 있다.

응용프로그램 실행의 OS 관리

  • 자원들을 다수 응용프로그램에서 사용할 수 있게 됨
  • 프로세서가 여러 응용 프로그램 중에 전환된다. 그래서 프로세싱하는 것처럼 보일 것이다.
  • 프로세서와 I/O 장비는 효율적으로 사용될 수 있다.

프로세스 요소

프로세스의 필수 요소는 다음과 같다

  • 프로그램 코드

    동일한 프로그램을 실행하는 다른 프로세스와 공유할 수 있다.

  • 해당 코드와 연결된 데이터 집합

    프로세서가 프로그램 코드를 실행하기 시작하면, 우리는 이 실행 엔티티를 프로세스라고 한다.

프로세스 요소들

프로그램이 실행되는 동안 이 프로세스는 다음과 같은 여러 요소에 의해 특성화될 수 있다.

  • 식별자
  • 상태
  • 우선순위
  • 프로그램 카운터
  • 메모리 포인터
  • 문맥 데이터
  • 입출력 상태 정보
  • 과금 정보

Process Control block(프로세스 제어 블록)

  • 프로세스 요소들을 가지고 있다.
  • 실행 중인 프로세스를 중단하고 나중에 중단이 발생하지 않은 것처럼 실행을 재개할 수 있다.
  • 운영체제에서 생산 및 관리를 한다.
  • 멀티 프로세스 지원할 수 있는 핵심 툴이다.

Process States (프로세스 상태)

Trace (추적)

  • 프로세스에 대해 실행되는 명령 순서
  • 프로세스를 processor가 수행할때 처리한 명령어들을 순서대로 나열한것
  • 개별 프로세스 행위의 특성은 그 프로세스를 위해 수행되는 일련의 명령어 리스트로 표현될 수 있다.
  • 프로세서의 동작은 다양한 프로세스의 trace가 어떻게 인터리빙되는지 보여줌으로써 특정지어질 수 있다.

Dispacher

  • 스케줄러가 선택한 프로세스를 CPU에게 할당해주는 요소
  • cpu를 한 프로세스로부터 다른 프로세스로 교체하여 주는 작은 프로그램

process Execution


디스패처가 A,B,C를 CPU에게 할당해준다.

Tow-State Process Model

  • Not Running: 실행 대기 중인 상태
  • RunningL: 현재 실행 중인 상태

프로세스의 생성

  • 프로세스 스와핑

    OS가 다른 프로세스의 명시적 요청에 따라 새로운 프로세스를 생성하는 경우

  • 부모 프로세스

    원본 생성 프로세스이다.

  • 자식 프로세스

    부모 프로세스로부터 파생된 새로운 프로세스이다.

프로세스 생성 이유
new batch job(새로운 일괄처리 작업) : 운영체제가 새로운 작업을 처리할 준비가 되면, 다음에 수행할 일련의 작업제어 명령을 읽어 들일 것이다.
Interactive logon(대화형 로그온): 사용자가 터미널에서 시스템에 로그온 한다.
Created by OS to provide a service(서비스를 제공하기 위해 운영체제가 생성) : 사용자가 대기할 필요 없도록, 운영체제는 사용자 프로그램을 대신해 어떤 기능을 수행할 프로세스를 생성할 수 있다.
Spawned by existing process(기존 프로세스에 의해 생성) : 모듈화를 위해서나 병렬성을 활용하기 위해, 사용자 프로그램은 많은 프로세스의 생성을 명령할 수 있다.

프로세스 종료(Process Termination)

  • 프로세스가 완료되었음을 나타내는 수단이 있어야 한다.
  • 배치 작업(일괄적으로 모아서 처리하는 작업)에는 종료를 위한 HALT명령 또는 명시적인 OS 서비스 호출이 포함되어야 한다.
  • 대화형 응용프로그램의 경우 사용자 작업은 프로세스가 완료된 시점을 나타낸다.

프로세스 종료 이유

  • 정상 완료
  • 시간 한도 초과
  • 메모리 부족
  • 경계범위 위봔
  • 보호 오류
  • 산술 오류
  • 시간 초과
  • 입출력 실패
  • 무효 명령어
  • 특권 명령어
  • 데이터 오용
  • 오퍼레이터나 운영체제 간섭
  • 부모 종료
  • 부모 요청

5-상태 프로세스 모델

생성 (New) : 막 생성 되었지만, 운영체제에 의해 수행 가능한 프로세스 풀(pool) 로의 진입이 아직 허용되지 않은 프로세스

준비 (Ready) : 기회가 주어지면 수핼될 준비가 되어 있는 프로세스

수행(Running) : 현재 수행 중인 프로세스

블록/대기(Blocked) : 입출력 연산 완료 등과 같은 이벤트가 발생할 때까지 수행될 수 없는 프로세스

종료(Exit) : 프로세스 수행이 halt 중지 되거나 어떤 이유로 중단(abort)되었기 때문에 운영체제에 의해 수행간으 프로세스 풀에서 방출된 프로세스

일시 중단된 프로세스

  • 스와핑

    메인 메모리에서 디스크로 프로세스의 일부나 전체들을 이동하는 것을 포함한다.
    기본 메모리의 프로세스 중 준비상태에 있는 것이 없으면 OS는 차단된 프로세스중 하나를 디스크로 전환하여 일시 중단 대기열로 전환합니다.


일시 중단된 프로세스의 특징

  • 프로세스를 즉시 실행할 수 없습니다.

  • 사건을 기다리고 있을 수도 있고 그렇지 않을 수도 있다.

  • 어떤 에이전트(프로세스 자체나 부모 프로세스, 혹은 운영체제)가 프로세스의 수행을 막기 위해 그 상태를 보류 상태로 바꾸었다.

  • 에이전트가 제거를 명시적으로 해제 명령을 내릴 때까지 보류 상태에서 벗어날 수 없다.

프로세스 보류에 대한 이유

  • 스와핑
  • 운영체제의 다른 이유
  • 대화식 사용자의 요청
  • 타이밍
  • 부모프로세스 요청

운영체제 제어 구조

운영체제가 프로세스와 자원들을 관리하기 위해서는 일들 각각에 대한 현재 상태를 나타내는 정보를 가지고 있어야 한다. 즉 관리하고자 하는 각 개체에 대한 정보를 테이블로 구성해서 유지하는 것이다.

운영체제가 관리해야할 다른 4가지 테이블
메모리 테이블 입출력 테이블 파일 테이블 프로세스 테이블

Memory Table

주기억 장치와 보조기억장치 모두의 자취를 유지하기 위해 사용된다.
프로세스들은 가상메모리나 간단한 스와핑 기법을 사용하여 보조기억장치내에 유지되기도 한다.

반드시 포함되어야 하는 것들

  • 프로세스에게 할당된 주기억장치

  • 프로세스에게 할당된 보조기억장치

  • 어떤 프로세스가 특정 공유 메모리 영역에 접근이 가능하다는 속성등과 같은, 주기억 장치 또는 가상 메모리 블록들에 대한 보호 속성

  • 가상 메모리를 관리하기 위해 필요한 정보

    I/O Table

    입출력 장치와 컴퓨터 시스템의 채널을 쉽게 관리하기 위해 운영체제에서 사용된다.
    언제든지 I/O장치를 사용할 수 있거나 특정 프로세스에 할당할 수 있습니다
    I/O 작업이 진행 중인 경우 OS는 다음 사항을 알아야 한다.

  • 입출력 작업상태

  • I/O 전송의 원본 또는 대상으로 사용되는 주 메모리의 위치

    File Table

  • 파일의 존재 여부와 보조기억장치에 저장된 파일의 위치, 현재 상태, 그 밖에 다른 속성들에 대한 정보가 저장된다.
    이러한 정보들 대부분은 파일 관리 시스템에 의해 유지되고 사용될 수 있으며, 그러한 경우 운영체제는 파일에 대한 정보를 극히 일부만 유지하거나 전혀 유지하지 않는다.

Process Table

  • 운영체제는 프로세스를 관리하기위해 프로세스 테이블을 유지한다.
  • 메모리, I/O 및 파일에 대한 직접 또는 간접적인 참조가 있어야 한다.
  • 운영체제에 의해 접근될수 있어야 하므로 메모리 관리에 종속적이다.

Process Control Structures

운영체제가 임의 프로세스를 관리하고 제어하기 위해 알아야할 사항들
1. 프로세스 위치
2. 관리에 필요한 프로세스의 속성

Process Control Structures

Process Location

  • 프로세스는 수행될 하나의 프로그램 또는 여러 프로그램 집합을 가지고 있어야 한다.
  • 프로세스는 자신의 프로그램과 데이터를 적재시킬수 있는 충분함 메모리로 구성된다.
  • 프로그램 수행시, 프로시저 호출들의 트랙과 프로시저 간에 전달되는 매개변수 등을 유지하는데 사용되는 스택이 필요하다.

프로시저 : 루틴, 서브루틴, 함수와 같은 뜻으로 사용되며 하나의 프로시저는 특정 작업을 수행하기 위한 프로그램의 일부이다. 또는 어떤 행동ㅇ르 수행하기 위한 일련의 작업 순설르 말한다.
Process Attributes

  • 각 프로세스는 프로세스 제어를 위해 OS에 의해 사용되는 수많은 속성과 관련되어 있다.
  • 프로그램, 데이타, 스택 및 속성의 집합을 프로세스 이미지라고 한다
  • 프로세스 이미지 위치는 사용중인 메모리 관리 체계에 따라 달라진다.
profile
AR개발자지망생

0개의 댓글