본문 바로가기

분류 전체보기47

스케줄링 알고리즘 [혼공컴구] CPU 스케줄링의 목적 - 공평성 - 모든 프로세스가 자원을 공평하게 배정 - 자원 배정 과정에서 특정 프로세스가 배제되어서는 안됨 - 효율성 - 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링 - 유휴 자원을 사용하려는 프로세스에 우선권 - 안정성 - 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함 - 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호 - 확정성 - 프로세스가 증가해도 시스템이 안정적으로 작동하게 조치 - 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되도록 조치 - 반응 시간 보장 - 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정 - 시스템은 적절한 시간 안에 프로세스의 요구에 반응 - 무한 연기 방지 - 특정 프로세스의 작업이 무한히 연기되어서는.. 2023. 12. 22.
프로세스와 스레드 [혼공컴운] 스레드 - 프로세스를 구성하는 실행의 흐름 단위 - 프로세스 내에서 각기 다른 스레드 ID, 프로그램 카운터 값을 비롯한 레지스터 값, 스택으로 구성 - 각자 프로그램 카운터 값을 비롯한 레지스터 값, 스택을 가지고 있기에 스레드 마다 다른 코드를 실행 가능 - 실행에 필요한 최소한의 정보만을 유지한 채 프로세스 자원을 공유하며 실행 - PC를 포함한 레지스터, 스택을 공유 - 메모리를 효율적으로 사용 가능 - 프로세스의 자원을 공유하기 떄문에 서로 협력과 통신에 유리함 - 멀티 프로세스는 하나의 스레드에 문제가 생기면 프로세스 전체에 문제가 생길 수 있음 - 종류 - 단일 스레드 프로세스 - 모든 프로세스가 하나의 실행 흐름을 가지고 한 번에 하나의 부분만 실행 - 멀티 스레드 프로세스 - 여러 스레드.. 2023. 12. 15.
프로세스 계층 구조 & 생성 기법 [혼공컴운] 프로세스 계층 구조 - 실행되는 최초의 프로세스가 자식 프로세스들을 생성하고, 생성된 자식 프로세스들이 새로운 프로세스를 낳는 형식을 트리 구조로 표현 - 최초의 프로세스의 PID는 항상 1이며, 모든 프로세스의 최상단에 있는 부모 프로세스이다 프로세스 생성 기법 - 부모 프로세스를 통해 생성된 자식 프로세스들은 복제와 옷 갈아입기를 통해 실행 - fork() - 복제 . - 자신의 복사본을 자식 프로세스로 생성하는 시스템 호출 - 메모리 내용, 열린 파일의 목록 등이 자식 프로세스에 상속 - 복사된 자식 프로세스는 다른 PID를 가지고, 저장된 메모리 위치도 다름 - exec() - 옷 갈아입기 - 자신의 메모리 공간을 새로운 프로그램으로 교체 - 코드 영역과 데이터 영역의 내용이 실행할 프로그램의 내.. 2023. 12. 15.
문맥 교환 [혼공컴운] 문맥교환 - 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행 - 문맥 (context) - 하나의 프로세스 수행을 위해 기억해야 할 정보 - pcb에 저장되는 정보들 - 문맥 교환이 자주 일어나면 프로세스는 그만큼 빨리 번갈아 가며 수행되기 때문에 프로세스들이 동시에 실행되는 것 처럼 보임 - 문맥 교환을 너무 자주 하면 오버헤드가 발생 - 문맥 교환이 진행될 동안 시스템이 아무런 유용한 일을 못 하기 때문에 문맥 교환 시간은 순수한 오버헤드 - 문맥 교환의 속도는 메모리의 속도, 반드시 복사되어야 하는 레지스터의 수, 특수 명령어의 존재에 좌우되므로, 기계마다 다름. 2023. 12. 14.