프로세스, 스레드

augusstt·2022년 10월 22일
0

CS

목록 보기
7/11
post-thumbnail

이 글은 "혼자 공부하는 컴퓨터 구조 + 운영체제"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.

이미지 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제

1. 프로세스

  • 보조 기억 장치에 저장된 프로그램을 메모리에 저장하는 순간, 프로세스가 된다.
  1. 프로세스 제어 블록 (PCB)

    • 프로세스의 실행 순서를 관리하고, CPU를 비롯한 지원을 배분하는 운영체제

    • 커널영역에 저장

    • 프로세스 생성시에 만들어지고, 종료시에 폐기

    • 저장 정보

      1. 프로세스 ID (PID)
        • 특정 프로세스를 식별하기 위해 부여하는 식별번호
      2. 레지스터 값
        • 프로그램 카운터를 비롯한 값 저장
      3. 프로세스 상태
      4. CPU 스케줄링 정보
      5. 메모리 관리 정보
  2. 프로세스 메모리 영역
    사용자 영역

    • 프로세스 생성시 사용자 영역

      1. 코드 영역 (텍스트 영역)

        • 정적 할당 영역

        • 실행 할 수 있는 코드 / 명령어 저장

          • 읽기 전용
      2. 데이터 영역

        • 정적 할당 영역

        • 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간

          • ex) 전역변수
      3. 힙 영역

        • 동적 할당 영역
        • 프로그래머가 직접 할당 할 수 있는 저장 공간
          • 힙 영역에 메모리를 할당 했다면 다시 메모리 공간을 반환해야 한다.

            메모리 공간 미 반환시, 메모리 누수라는 메모리 낭비를 초래한다.

      4. 스택 영역

        • 동적 할당 영역

          • 데이터들을 일시적으로 저장하는 공간

          • ex) 매개변수, 지역변수

2. 프로세스 상태 , 계층구조

  • 프로세스 상태

    1. 생성

      • 메모리에 저장되어 PCB를 할당받은 상태
    2. 준비

      • CPU를 할당받아 실행가능한 상태, 차례가 되면 실행상태가 된다

        프로세스가 실행상태로 전환되는 것을 디스패치 (Dispatch)라 한다.

    3. 실행

      • CPU를 할당 받아 실행 중인 상태

        • 할당된 시간동안 CPU사용, 타이머 인터럽트가 발생하면 다시 준비상태가 된다.
    4. 대기

      • 입출력 장치의 작업을 기다리는 상태, 완료되면 다시 준비상태로 돌아가 CPU할당을 기다린다.

        • 입출력 작업은 CPU에 비해 처리속도가 느리기에 발생
    5. 종료

      • 프로세스가 종료된 상태.

        • 종료되면 운영체제는 PCB와 프로세스가 사용한 메모리를 정리한다.

프로세스 상태

  • 프로세스 계층구조
    계층구조
    • 최초의 프로세스가 자식 프로세스를 생성하고 자식 프로세스가 새로운 자식 프로세스를 생성하는 트리구조

3. 스레드

  • 프로세스를 구성하는 실행의 흐름 단위

  • 단일 스레드 프로세스
    - 각각의 프로세스의 실행의 흐름 단위가 1개 인 것

  • 멀티 프로세스
    - 여러 프로세스를 동시에 실행 하는 것

  • 멀티 스레드
    - 여러 스레드로 프로세스를 동시에 실행 하는 것

병렬

  • 프로세스끼리는 자원을 공유하지 않지만, 스레드끼리는 같은 프로세스 내 자원을 공유한다
  • 같은 작업을 하는 동일한 프로세스 실행시. 동일한 프로세스가 메모리에 적재되어 비효율적
profile
https://augusstt-note.gitbook.io/aug-note 로 블로그 이전했습니다!

0개의 댓글