일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- HtmlElement
- innerHTML
- javascript
- jsp내장객체
- 노드 삭제
- 노드
- 노드 추가
- webprogramming
- backend
- Servlet
- 코딩테스트
- 리다이렉트
- Web
- element
- 자바스크립트
- HTTP
- 노드 객체
- 포워드
- eventlistener
- Object
- HTML
- 이벤트
- 자바스크립트 이벤트
- 파이썬 코테
- Array
- 노드 replace
- 문자열
- 이벤트 핸들러
- addEventListener
- debugging
- Today
- Total
seoyoung.dev
3.Process Management 본문
http://www.kocw.net/home/search/kemView.do?kemId=1046323
운영체제
운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각
www.kocw.net
* 프로세스 생성 = fork()
: 부모 프로세스 -> 자식 프로세스 생성, 계층 구조 형성
: fork() 라는 system call 로 OS 에 만들어 달라 요청하는 것
수행
(1) 부모와 자식 프로세스가 공존하며 수행하는 경우
(2) 자식이 종료될 때까지 부모 프로세스는 wait 하는 경우
주소 공간
: 자식은 부모의 address space 를 복사
: code, data, stack 그대로 복사
+ exec() 시스템 콜 : 기존 프로세스가 새로운 프로그램으로 덮어지는 것
+ fork() + exec() : 생성된 자식 프로세스는 새로운 실행파일로 덮어짐
* 프로세스 종료 = exit()
: 자식이 죽으면 부모에게 output data 전달 ( wait 시스템 콜을 통해서 )
* 부모 프로세스가 자식 수행 종료시킴 = abort
: 부모가 종료되는 경우
: 자식의 할당 자원 한계치 넘을 경우
* fork() System Call
: fork() 하게 되면, 부모 프로세스의 context 복제 == program counter 복제하니까 자식 역시 fork() 이후부터 수행
int main(){
int pid;
pid = fork();
if (pid == 0) // child
printf("child");
else if (pid > 0) // parent
printf("parent");
}
* exec() System Call
int main(){
int pid;
pid = fork();
if (pid == 0) // child
{
printf("child");
execlp("/bin/date","/bin/date",(char*) 0); // 새로운 실행 파일로 자식 프로세스 덮어씌움
}
else if (pid > 0) // parent
printf("parent");
}
* wait() System Call
: 프로세스를 sleep 시킨다 ( block 상태로 보냄 )
: 자식 프로세스의 종료를 기다리면서
: 자식 프로세스 종료 시, 프로세스를 깨운다 ( ready 상태 )
* exit() System Call
: 마지막 문장 수행 후, 종료
: 비자발적 종료
- 부모 프로세스가 자식 프로세스를 죽이는 경우
- 키보드로 강제로 종료
- 부모 프로세스가 죽는 경우, 자식 먼저 죽어야 하므로 자식 차례대로 죽음
* IPC (Inter Process Communication)
(1) 메세지를 전달 ( message passing )
: 커널을 통해 메시지 전달
1. 직접 통신 : 누가 받을지 명시
2. 간접 통신 : mailbox or port 를 통해 간접 전달..누가 받을지 명시하지 않음
(2) 주소공간 공유 ( shared memory )
: 서로 다른 프로세스 간 주소공간 일부 공유하여 사용
// 커널을 통해 shared memory 쓴다하는 시스템 콜로 사용
+ [ thread : 하나의 프로세스 내에서 주소공간을 공유하므로 협력 가능 ]
'TIL > 운영체제' 카테고리의 다른 글
4.CPU Scheduling (0) | 2021.09.27 |
---|---|
2. 프로세스 (0) | 2021.08.09 |