컴퓨터 구조 &운영체제/컴퓨터구조 + 운영체제

프로세스

busy맨 2023. 8. 14. 17:38

1.프로세스(Process)

  • 실행 중인 프로그램을 의미
    • 프로그램
      • 저장공간에 저장되어 있는 코드와 리소스 등이 집합되어 있는 파일을 의미
      • 프로그램이 메모리에 올라가서 프로세스로 동작
  • 프로세스는 프로그램이 실행되면 점유시간, 메모리, 파일, 입출력 장치 등의 자원을 할당

 

2. 프로세스의 메모리 구조

 

  • 스택 영역
    • 데이터를 일시적으로 저장하는 영역
    • 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었음을 의미
    • 지역변수, 매개변수 등이 존재
  • 힙 영역
    • 코드 영역과 별도로 유지되는 자유 영역
    • malloc(), new()와 같은 동적 메모리 할당, 해제와 관련
  • 데이터 영역
    • 프로그램의 가상 주소 공간
    • 전역 변수, 정적 변수를 저장하거나 할당하며 실행 전에 초기화
  • 코드 영역
    • 프로그램 명령이 위치하는 곳
    • 기계어로 제어되는 메모리 영역

 

3.프로세스의 상태

  • 커널은 준비 큐, 대기 큐, 실행 큐 등의 자료구조를 통해 프로세스의 상태를 관리
    1.  

  • Dispatch
    • 준비 → 실행
    • 준비 큐 맨 앞에 있던 프로세스가 프로세스를 점유하는 것
  • Timeout
    • 실행 → 준비
    • 프로세스가 프로세서를 독점하지 못하도록 특정 시간동안만 프로세스를 점유하게 함
      • InterruptClock 사용
  • Block
    • 실행 → 대기
    • 할당된 시간 이전에 실행상태의 프로세스에 입출력 연산이 필요하거나 새로운 자원 요청의 문제로 프로세서를 스스로 양도하는 상태
  • Wakeup
    • 대기 → 준비
    • Block 상태의 프로세스가 입출력 작업이 끝난 상태

 

★PCB

  • 프로세스 제어 블록
    • 운영체제가 프로세스를 제어할 때 프로세스의 상태 정보를 저장하는 곳
    • 프로세스가 생성되면 PCB를 생성
    • 프로세스가 종료되면 PCB를 삭제

PCB 모듈

 

'컴퓨터 구조 &운영체제 > 컴퓨터구조 + 운영체제' 카테고리의 다른 글

데이터  (1) 2024.01.22
CPU Scheduling  (0) 2023.08.29
운영체제 기초  (0) 2023.08.14
메모리  (0) 2023.08.14
CPU의 구조  (0) 2023.08.12