컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제

21.프로세스

공부를하자 2023. 7. 18. 23:11

1.프로세스

 1)정의 보조기억장치를 메모리에 적재되어 실행중인 프로그램.

 

*프로세스 확인하기

   2)포그라운드 프로세스(foreground process)

   -사용자가 가시적으로 확인하고 실행되는 프로세스

  3)백그라운드 프로세스(background process)

   -사용자가 확인하지 못하는 프로세스. 유닉스에선 데몬(daemon)

    윈도우에선 서비스(service)라고 한다.

 

2.프로세스 제어 블록(PCB: Procees Control Block)

 1)정의 개요

  - CPU 자원은 한정 되있고 모든 프로세스를 가동할 없다.

    그래서 프로세스는 한정된 시간만큼 CPU 이용하고 다른 프로세스 이용하고

    다시 자신의 차례가 때까지 대기한다.

   -프로세스가 여태까지 작업을 백업하고 다시 작업에 복귀하는데 쓰이는 것이

   PCB이다.

  -PCB 프로세스에 관련된 정보를 저장하는 자료구조이다.

 

 -PCB 프로그램이 실행되면 커널영역에 생성되고 프로그램이 끝나면 폐기된다.

  2)PCB 구성

   -프로세스ID(PID : Process ID)

    :프로세스의 고유한 식별 번호.

   -레지스터

    :여태까지 작업했던 데이터(프로그램 카운터 ) 백업할 레지스터

   -프로세스 상태

    :프로세스가 현재 어떤 상태인지 판단하는 데이터

   -CPU 스케줄링 정보

    :프로세스가 언제,어떤 순서로 CPU 할당되는지에 대한 정보.

   -메모리관리정보

    : 프로세스의 데이터의 정보가 담긴 주소를 저장.

   -사용자 파일과 입출력장치 목록

    : 프로세스가 실행중일떄 어떤 파일과 입출력장치가 사용되는지 기록.

3.문맥(context) 문맥 교환(context swtiching)

 1)문맥: 프로세스를 수행을 재개하기 위한 정보

 2)문맥교환: 새로운 프로세스를 실행하기 위해 문맥을 복구하고 새로 실행하는 과정.

 

 

4.프로세스의 메모리영역

 1)정의

   -프로세스가 데이터가 저장되는 사용자 영역.

 2)코드영역(code segment)

  -텍스트영역이라고 하며 기계어로 이루어진 명령어가 담긴 저장영역.

   읽기만 가능한영역.

 3)데이터영역(data segment)

  -프로그램이 실행될 동안 유지될 데이터 저장영역.

  -대표적으로 전역변수가 있다.

 4) 영역(heap segment)

  -프로그램을 만드는 사용자, 프로그래머가 직접 할당하는 저장공간.

  - 영역에 메모리공간을 할당하면 언젠가는 해제를 시켜야한다.

  -할당한 공간이 반환되지않고 남아 메모리 낭비를 하는 것을

   메모리 누수(memory leak)라고 한다.

 5)스택 영역 (stack segment)

   -데이터를 일시적으로 저장하는 공간.

   -대표적으로 매개변수,지역변수가 있다.

*코드 영역과 데이터 영역은 크기가 변하지 않는다. 그래서 정적할당영역이라고

 하며 반면에 힙과 스택은 수시로 바뀌기에 동적 할당 영역이라고 한다.