본문 바로가기

컴퓨터과학/OS3

[OS] 스레드(Thread) 스레드(Thread) 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스가 프로그램의 주체라면, 스레드는 프로세스의 실제 실행 단위를 의미한다. 프로세스는 여러 개의 스레드를 담고 있으며, 커널은 프로세스가 담고 있는 스레드를 관리해서 프로세스의 동작을 조정한다. Stack은 스레드 고유의 자원이며, Heap, Data, Code 영역과 같은 프로세스의 자원을 공유한다. 정리) 프로그램 vs 프로세스 vs 스레드 추가 예정 2021. 4. 12.
[OS] 프로세스(2) PCB(Process Control Block) 운영체제 커널의 자료구조로, 프로세스를 표현하기 위해 사용된다. PCB는 프로세스가 생성 될 때 같이 생성되며 프로세스 고유의 정보를 포함한다. 커널은 이 자료구조를 사용해서 프로세스를 관리한다. PCB에 포함된 정보는 다음과 같다. OS가 관리상 사용하는 정보 : 프로세스 상태, 프로세스 ID, 스케줄링 정보, 우선 순위 CPU 수행 관련 하드웨어 값 : 프로그램 카운터, 레지스터 메모리 정보 : 코드, 데이터, 스택의 위치 정보 파일 정보 : 열어둔 파일 정보(핸들) 프로세스 상태 컨텍스트 스위칭에 의해 프로세스는 실행 또는 정지 상태에 놓일 수 있다. 프로세스 상태 내용 실행 프로세스가 CPU를 점유하고 있는 상태 대기 프로세스가 CPU 점유를 위해 .. 2021. 4. 12.
[OS] 프로세스(1) 프로세스는 메모리에 적재돼 실행되는 프로그램을 뜻한다. * 프로그램은 하드 디스크에 저장돼 있는데, 실행 시 운영체제 로더에 의해 메모리로 적재된다. Q. 프로세스와 프로그램의 차이? A. 프로그램은 실행되기를 기다리는 명령어(코드)와 정적 데이터의 묶음입니다. 이러한 프로그램의 명령어와 정적 데이터가 메모리에 적재되면 프로세스가 됩니다. 컴퓨터 하드웨어인 CPU는 한 순간에 오직 1개의 프로세스만을 수행 가능하다. 다만, 운영체제의 멀티태스킹과 스케줄링 기법으로 인해 다수의 프로세스가 동시에 실행되는 것처럼 보일 뿐이다. 또, 멀티태스킹 운영체제에서는 하나의 프로세스가 독점적으로 시스템 자원을 사용하는 것을 막기 위해 프로세스에 자원 사용 시간을 적절히 배분한다. Stack : 함수 호출 시(지역 변수.. 2021. 4. 12.
728x90
반응형