본문 바로가기

CS4

스레드 Thread 프로세스 내부에서 CPU를 수행하는 단위 왜 필요할까? 프로세스마다 주소공간에 code, data, stack이 있고, 프로세스 하나를 관리하기 위해 운영체제 내부에 PCB가 있다. 이는 프로세스의 상태와 ID, program counter(메모리의 어느부분을 가리키고 있는가) 등을 저장하고 있다. 만약 동일한 일을 하는 프로세스가 여러개라면 프로세스마다 별도의 메모리 주소 공간을 가져야하므로 메모리가 낭비된다. 이때, 프로세스를 하나만 띄워놓고 하나의 code, data, stack영역을 공유한다면 메모리를 아낄 수 있을 것이다. 이것이 스레드를 사용하는 이유이다. 작동 원리 하나의 프로세스에 CPU의 실행 단위를 여러개를 두어 스레드 별로 CPU가 code의 어느부분을 실행하고 있는지 별.. 2023. 10. 27.
프로세스 프로세스 실행 중인 프로그램을 의미 사용자 영역 stack - 함수에 대한 파라미터, 리턴 주소, 지역 변수 heap - 동적할당으로 생성한 메모리 변수 data - 전역 변수 (초기화 된 변수 영역 / 초기화 되지 않은 변수 영역) code - 프로그램 코드 커널 영역 Context CPU 현재 상태를 나타내기 위해 사용 특정 시점에서 프로세스가 코드의 어디까지 실행했는지 알기 위해 필요 프로세스의 상태 New 프로세스 생성 중인 상태 Ready 모든 준비가 되어있고, CPU만 얻으면 명령을 실행할 수 있는 상태 따라서 최소한의 메모리는 갖고 있어야함 일반적으로 Ready상태에 있는 프로세스가 CPU를 잡았다 놨다 하면서 번갈아서 작업을 함 Waiting CPU가 있어도 바로 명령을 실행할 수 없는 상.. 2023. 10. 27.
프로그램의 실행 프로그램의 실행 파일시스템에 실행 파일이 존재한다. 가상 메모리에 각 프로그램의 독자적인 주소 공간이 생성된다. 주소 공간은 stack, data, code영역으로 이루어져 있다. 주소 공간 중 필요한 부분만 메모리에 올라간다. 사용하지 않는 영역은 Swap area으로 배제해둔다. 메모리의 구성 User 영역 실행 할 프로그램의 주소공간이 존재. 프로그램이 종료되면 해당 프로그램이 사용하던 주소 공간은 사라진다. Kernel 영역 code 시스템 콜, 인터럽트 처리 코드 자원 관리를 위한 코드 data 운영체제가 사용하는 자료구조 프로세스와 하드웨어 별로 자료구조를 관리한다. stack 함수 호출 및 리턴을 위한 스택 💡 프로그램은 유저 영역과 커널 영역을 반복하며 실행되는데, 유저 영역에서 커널 영역.. 2023. 10. 26.
운영체제 운영체제 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 사용자 소프트웨어 운영체제 하드웨어 구성 운영체제를 구매할 때 함께 있는 모든 것 커널 - 컴퓨터를 시작할 때부터 끝까지 실행되고 있는 프로그램 목표 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대신하여 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공 프로세서, 메모리, 입출력 장치 등의 컴퓨터 시스템의 자원을 효율적으로 관리 분류 동시 작업 가능 여부 단일 작업 - 한 번에 하나의 작업만 처리 다중 작업 - 동시에 두 개 이상 작업 처리 사용자 수 단일 사용자 다중 사용자 처리 방식 일괄 처리 (batch processing) - 작업을 모아서 한번에 처리 시분할 (time shar.. 2023. 10. 26.