[운영체제] 프로세스란 무엇인가요?

orca·2023년 11월 18일

CS

목록 보기
5/46

프로세스란 실행을 위해 메모리에 올라온 동적인 상태입니다. 프로세스는 메모리에 주소 공간을 갖습니다.

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

  • PCB는 커널 영역에 존재함
  • 프로세스 관리를 위한 메타 데이터 집합
    • 프로세스 ID, 부모 프로세스 ID, 자식 프로세스 ID
    • 프로세스 상태 : 생성, 준비, 실행, 완료, 대기 상태
    • 프로그램 카운터 : 다음에 실행할 명령어의 주소
    • 레지스터 데이터 : 프로세스가 실행 상태일 때 레지스터의 값
    • 메모리 관리 정보 : 경계 레지스터 값, 한계 레지스터 값
    • 계정 정보 : 계정 번호, CPU 할당 시간, CPU 사용 시간
    • 입출력 상태 정보 : 프로세스에 할당된 입출력 자원들과 오픈 파일 리스트
  • 문맥 교환 시 PCB 정보를 활용함

프로세스

  • 프로세스는 사용자 영역에 존재함
  • 영역 구분
    • stack : 매개 변수, 로컬 변수, 복귀 주소
    • heap : 동적으로 할당되는 메모리 영역
    • data : 전역 변수, static 변수
    • text : 명령어 코드들
  • stack 과 heap 영역은 사실 같은 공간을 공유함
    • stack과 heap이 서로의 영역을 침범한 경우 ➡️ StackOverFlow HeapUnderFlow

0개의 댓글