반응형 운영체제10 스레드(Thread)란 스레드(Thread)란?오늘날의 운영체제들은 프로세스를 효율적으로 사용하고, 작업의 유연성을 얻기 위해 멀티스레드를 지원한다.스레드의 정의프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고, 실제 작업은 CPU가 수행한다. 이때 CPU 스케줄러가 CPU에 전달하는 일 하나가 스레드이다. 그러므로 CPU가 처리하는 작업 단위는 프로세스로부터 전달받은 스레드인 것이다. 운영체제의 입장에서 작업 단위는 프로세스이고, CPU입장에서의 작업 단위는 스레드인 것이다.따라서 프로세스 입장에서는 스레드를 다음과 같이 정의할 수 있다. 스레드 : 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위.작업(job)의 크기크기 순서로 나열하면 다음과 같다.Thread(ope.. 2023. 7. 31. 프로세스 제어 블록 (PCB, Process Control Block)란? 프로세스 제어 블록(PCB)이란? 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓은 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다. 프로세스 상태 관리와 문맥교환(Context Switching)을 위해 필요하다. PCB는 프로세스 생성 시 만들어지며 주기억장치에 유지된다. 프로세스 제어 블록(PCB)에 포함되는 정보들 Process ID : 프로세스를 구분하는 ID Process state : 각 State 들의 상태를 저장한다. Program Counter : 다음 Instruction의 주소를 저장한다. CPU는 이 값을 참조해서 Process의 Instruction을 수행한다. Register : Accumulator, CPU Register, General Register 등을 포함한.. 2023. 7. 20. 프로그램의 실행 프로그램이 실행되고 있다 '프로그램이 실행되고 있다'는 것은 컴퓨터 시스템 차원에서 볼 때 크게 두 가지 중요한 의미를 가진다. 디스크에 존재하던 실행파일(.exe)이 메모리에 적재(load)된다는 의미 프로그램이 CPU를 할당받고 명령을 수행하고 있는 상태 일단 우리가 알고 있는 작동은 CPU는 디스크에 존재하는 실행파일이 메모리에 올라가면 프로그램은 CPU를 할당받고 명령을 수행한다. 하지만 여러 프로그램이 짧은 시간 단위로 CPU를 나눠 쓰고, 이들 프로그램이 메모리에 동시에 적재되어 있을 수 있으므로 여러 프로그램이 동시에 실행된다는 말을 보편적으로 사용하는 것이다. 실행파일이 메모리에 적재될 때 실행파일 전체가 메모리에 한꺼번에 올라가기 보다는 일부분만 메모리에 올라가고 나머지는 디스크의 특정 .. 2023. 7. 20. 메모리 구조(Memory Structure)에 대해서 메모리 구조우리가 exe 파일을 실행하면 운영체제는 프로그램에 정의된 명령어(코드)를 바탕으로 메모리에 프로세스를 적재한다.해당 프로세스를 위한 Code, Data, Heap, Stack 영역이 생성된다. 메모리 구조코드 영역데이터 영역힙 영역스택 영역 코드 영역 (Code)소스코드가 기계어 형태로 저장된다CPU가 저장된 명령어를 프로그램 카운터에 의해 하나씩 가져가 처리하게 된다.프로그램 시작부터 종료까지 메모리에 있게 된다.컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장된다. 데이터 영역 (Data)전역변수, static 변수가 저장된다.프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 해제된다.실행 도중 변수 값이 변경될 수 있으니 Read-Writ.. 2023. 2. 17. 이전 1 2 다음