CS 공부

주제무·2023년 10월 25일
0

소마

목록 보기
17/21

CS

운영체제

프로세스

프로세스란?

실행 중인 프로그램을 의미한다.
실행 파일이 메모리에 올라온 상태

프로세스 메모리 구조

스택 영역: 호출된 함수에서 복귀할 주소 및 데이터(지역변수, 매개변수, 반환값)을 임시로 저장하는 공간. LIFO 방식이기 때문에 메모리의 높은 주소에서 낮은 주소의 방향으로 데이터가 할당된다. 스택은 컴파일 시점에서 크기가 결정된다. 때문에 스택 영역을 초과하게 되면 stack overflow가 발생한다.

데이터 섹션 영역: 전역 변수와 정적 변수를 저장. 이 변수들은 프로그램이 시작될 때 할당되어 프로그램 종료 시 소멸된다.

BSS, Block Stated Symbol: 초기화 되지 않은 전역변수가 저장된다.

힙 영역: 동적 데이터 영역이다.

PCB

Process Control Block

운영체제는 프로세스 생성과 동시에 PCB를 생성한다.
실행 중인 프로세스를 전환할 때, 작업의 진행 상황을 PCB에 저장한다.

구체적으로 PCB에 무엇이 저장되는 지 알아보자.

  • 프로세스 식별자(PID)
  • 프로세스 상태: new | ready | running | waiting | terminated
  • 프로그램 카운터
  • CPU 레지스터
  • CPU 스케쥴링 정보
    - 프로세스의 우선순위, 스케줄 큐에 대한 포인터
  • 메모리 관리 정보: 페이지 테이블, 세그먼트 테이블
  • 입출력 상태 정보: 프로세스에 할당된 입출력 장치들과 열린 파일 목록
  • 어카운팅 정보: 사용된 CPU 시간, 시간제한, 계정번호

메모

CPU 스케쥴링, 메모리 관리 정보에서 페이지와 세그먼트를 공부하자.

스레드

프로세스의 실행 단위.
한 프로세스에서 여러 실행 흐름으로 프로세스 내의 자원을 공유할 수 있다.

스레드는 스레드ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성된다.
같은 프로세스 내의 다른 스레드와 코드, 데이터 섹션, 운영체제 자원들을 공유한다. 그리고 독립적인 스택과 프로그램 카운터 값을 갖고 있다.

0개의 댓글