CS지식 쌓기

프로세스

류도토리 2024. 1. 2. 17:14
  1. 포그라운드 프로세스
    1. 사용자가 볼 수 있는 공간에서 실행되는 프로세스
  2. 백그라운드 프로세스
    1. 사용자가 볼 수 없는 공간에서 실행되는 프로세스
    2. 데몬, 서비스 - 사용자와 상호작용 하지 않고 그저 정해진 일만 수행하는 프로세스
  3. 프로세스 제어 블록 (PCB)
    1. 프로세스 관련 정보를 저장하는 상품에 달린 태크 같은 자료 구조
    2. 모든 프로세스는 실행을 위해 CPU가 필요하다
    3. 하지만 CPU 자원은 한정되어 있다
      1. 자신의 차례에 정해진 시간 만큼 CPU이용
      2. 타이머 인터럽트가 발생하면 차례 양보
    4. PCB에 담기는 대표적인 정보
      1. 프로세스 ID (PID) : 특정 프로세스를 식별하기 위해 부여하는 고유 번호
      2. 레지스터 값
        1. 프로세스는 자신의 실행 차례가 오면 이전까지 사용한 레지스터 중간 값을 모두 복원 → 실행 재개
        2. 프로그램 카운터, 스택 포인터
      3. 프로세스 상태 : 입출력 장치를 사용하기 위해 기다리는 상태, CPU를 사용하기위해 기다리는 상태 등등
      4. CPU 스케줄링 정보 : 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대한 정보
      5. 메모리정보
        1. 프로세스가 어느 주소에 저장되어 있는지에 대한 정보
        2. 페이지 테이블 정보 (메모리 주소를 알 수 있는 정보가 담김)
      6. 사용한 파일과 입출력장치 정보 : 할당된 입출력장치, 사용 중인 파일 정보
  4. 문맥 교환
    1. 기존의 실행중인 프로세스 문맥을 백업하고 새로운 프로세스 실행을 위해 문맥을 복구하는 과정
    2. 한 프로세스A에서 다른 프로세스B로 실행 순서가 넘어가면?
    3. 기존에 실행 되던 프로세스A는 지금까지의 중간 정보를 백업
      1. 중간 정보 = 문맥(context)
    4. 뒤이어 실행할 프로세스B의 문맥을 복구
  5. 프로세스의 메모리 영역
    1. 코드 영역(텍스트 영역)
      1. 기계어로 이루어진 명령어 저장
      2. 데이터가 아닌 CPU가 실행할 명령어가 담김으로 쓰기가 금지된 영역
    2. 데이터 영역
      1. 잠깐 썼다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터 저장
      2. 전역 변수
    3. 힙 영역
      1. 개발자가 직접 할당할 수 있는 저장 공간
    4. 스택 영역
      1. 데이터가 일시적으로 저장되는 공간
      2. 잠깐 쓸 값들이 저장되는 공간
      3. 매개 변수, 지역 변수
    5. 힙 영역과 스택 영역의 크기는 가변적
      1. 힙 영역은 낮은 주소 → 높은 주소로 할당
      2. 스택 영역은 높은 주소 → 낮은 주소로 할당
       

'CS지식 쌓기' 카테고리의 다른 글

스레드와 프로세스  (1) 2024.01.02
프로세스 상태와 계층 구조  (0) 2024.01.02
운영체제  (0) 2024.01.02
다양한 입출력 방법  (0) 2024.01.02
장치 컨트롤러와 장치 드라이버  (0) 2024.01.02