Process (3) 썸네일형 리스트형 Process Management 1&2 프로세스 생성 부모 프로세스가 복제 형태를 통해 자식 프로세스 생성 부모 프로세스는 여러 명의 자식 프로세스를 생성할 수 있음 => 트리 형태로 발전 자원의 공유와 관련해서 보통은 공유 X 부모 프로세스 자체를 새로운 프로세스로 만들어줌(exec()) 이후 코드 실행 불가 (아래 예시의 경우 1 -> hello 3 출력 후 종료) cf) echo는 뒤에 나오는 arguments를 그대로 출력해주는 리눅스 커맨드로 execip("프로그램 이름 ", "프로그램 이름", arguments, (char*) 0 ) 구조 wait() 시스템 콜 wait() : 시스템을 잠들게 하는 것(block 상태) 자식 프로세스의 종료를 기다리며 block 상태가 된다. -> 자식 프로세스 종료 후에는 ready 상태 ex) .. Process 2&3 동기식 입출력과 비동기식 입출력 동기식 입출력 프로세스가 입출력 요청 -> 운영체제를 통해서 -> 끝날 때까지 기다림 (CPU 독차지, 낭비) 비동기식 입출력 프로세스가 입출력 요청 -> 운영체제를 통해서 -> 오래 걸리며 CPU가 다른 instruction 실행 (CPU 필요한 자원에 분배) (효울성) Thread thread : 프로세스 내부에 여러 개의 CPU 수행 단위가 있는 경우 PCB : 프로세스 관리 목적 / 프로세스 상태, id, 프로그램 카운터(메모리의 어느 부분을 실행하고 있는가) 등 스레드 : 프로세스(코드, 데이터, 스택)은 하나만 띄우고 프로그램 카운터를 여러 개(하나의 프로세스에 여러 개의 CPU 수행 단위) 메모리 주소 공간/프로세스 상태/프로세스가 사용하는 각종 자원 공유 -.. Process 1 프로세스의 개념 프로세스 = 실행 중인 프로그램 프로세스의 현재 상태를 정확하게 이해하려면 프로세스 문맥, 즉 프로세스의 탄생부터 종료까지 무엇을, 어떻게 실행했는지를 알아야 한다. 프로세스의 상태 CPU는 매 순간 하나의 프로세스만을 잡고 있는다. Running: CPU를 잡고 instruction을 수행 중인 상태 Ready: CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족해야 함) Blocked(wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상태 Process 자신이 요청한 event(cf. I/O)가 즉시 만족되지 않아 이를 기다리는 상태 New: 프로세스가 생성중인 상태 Terminated: 수행(execution)이 끝난 상태 CPU는 빠르게 그리.. 이전 1 다음