본문 바로가기

코딩베이스

[운영체제] 쓰레드 본 글의 내용은 그림으로 배우는 구조와 원리 - 운영체제 를 참고하여 작성되었습니다. 쓰레드란? 쓰레드는 스케쥴러에 의해 독립적으로 관리될 수 있는, 프로그램된 명령어의 가장 작은 연속적 단위입니다. 각 쓰레드들은 프로세스의 직접 실행 정보 외의 프로세스 관리 정보(코드, 전역 데이터, 힙)를 공유합니다. 그 외에 독립적으로 가지고 있는 목록은 다음과 같습니다. 쓰레드 실행 환경 정보(스택 포인터, 시퀀스 레지스터, 프로그램 카운터, 우선순위 등) 지역 데이터 스택 쓰레드는 보통 메인 쓰레드 외의 다른 프로시저를 호출하고 기록하기 때문에, 독립적인 스택이 필요합니다. 또한 독립적인 프로그램 카운터를 가지고 있습니다. 또, 프로세스 제어 블록과 같이 쓰레드도 쓰레드 제어 블록(TCB)에 정보를 저장합니다... 더보기
[운영체제] 프로세스 본 글의 내용은 그림으로 배우는 구조와 원리 - 운영체제 를 참고하여 작성되었습니다. 보통 우리가 사용하는 컴퓨터는 다중 프로그래밍 환경입니다. 여러 프로그램을 메모리에 적재하고 병행 실행할 수 있는 환경을 사용하고 있습니다. 병행 실행을 하게 되면, 필수불가결적으로 컴퓨터 자원을 공유할 수밖에 없고, 이를 운영체제에서 제어해야만 합니다. 프로세스란? 보통 프로세스를 한 마디로 이야기 하자면, 실행 중인 프로그램 또는 프로시저라고 말할 수 있습니다. 프로그램이 실행 중이라는 것은 디스크에 있던 프로그램을 메모리에 올린 후 운영체제에 의해 제어를 받고 있음을 의미합니다. 즉, 프로그램은 실행되는 동안에는 메모리 어느 한 구석을 차지하고 있고, 이를 프로세스라 합니다. 프로세스의 메모리 영역 하나의 프로그.. 더보기