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)
-데이터를 일시적으로 저장하는 공간.
-대표적으로 매개변수,지역변수가 있다.
*코드 영역과 데이터 영역은 크기가 변하지 않는다. 그래서 정적할당영역이라고
하며 반면에 힙과 스택은 수시로 바뀌기에 동적 할당 영역이라고 한다.

'컴퓨터 공학 > 혼자 공부하는 컴퓨터 구조 +운영체제' 카테고리의 다른 글
23.스레드 (0) | 2023.07.20 |
---|---|
22.프로세스 상태와 계층 구조 (0) | 2023.07.20 |
20.운영체제의 큰 그림 (0) | 2023.07.17 |
19.운영체제를 알아야 하는 이유 (0) | 2023.07.15 |
18.다양한 입출력 (0) | 2023.07.14 |