일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 데이터분석
- 836
- 랩실일기
- 웹소프트웨어
- DB
- 파싱
- 데이터베이스
- 운영체제
- 클래스
- 프로세스
- Linear Algebra
- 컴파일
- Agile
- 스케줄러
- 소프트웨어공학
- 파싱테이블
- 벡터
- 가상메모리
- NLP
- OS
- 애자일
- 자연어처리
- 오픈소스웹소프트웨어
- C언어
- 언어모델
- 컴파일러
- 정보검색
- css
- React
- 객체지향설계
Archives
- Today
- Total
observe_db
[OS] 3. 프로세스(Process)(2) 본문
3/20
Part 3.
프로세스 종료
- 마지막 명령어 실행 후 OS에 프로세스 삭제 요청
- wait()를 통해 부모로 데이터 전달.
- 자원은 OS에 의해 반납
- 비정상 종료도 있음
- abort() 사용.
- 시그널 SIGABRT를 발생시키고, 시그널 처리기 있으면 호출, 없으면 비정상종료
- 일부 자원 반납처리 부재)
- 부모 프로세스가 kill()을 통해 자식 프로세스 종료 가능
- 자식이 배정된 자원을 초과 사용하는 경우
- 할당된 작업이 필요 없는 경우
- 부모가 종료되는 경우
- 어떤 특정 OS는 자식 프로세스 강제 종료(모든 자식의 연쇄 종료)
프로세스 일시중지(suspend)
- 종료는 아니고, 프로세스 사용을 위한 경쟁에서 배제
- 보안 위협 감지, 소프트웨어 debug에 유용
- 자신이나 다른 프로세스가 일시중지 가능.
- 재시작(resume)은 다른 프로세스에 의해(자기는 돌아가지 않으므로)
- suspended-ready(준비)/suspended-blocked(대기) 상태
문맥교환(context switching)
- OS의 실행중인 프로세스를 중지시키고, 준비 상태 프로세스 시작
- 실행중인 실행 문맥(execution context, 레지스터 정보 등)을 PCB에 저장
- 준비상태의 프로세스의 PCB내용을 레지스터 등에 적재
- 시간의 최소화 필요(어떤 컴퓨터 구조는 하드웨어적으로 실행)
Part4. 프로세스간 통신
프로세스간 통신(interprocess communication, IPC)
- 프로세스간 데이터를 주고받을 수 있게 하는 것
- 하나의 컴퓨터 내의 프로세스간
- 네트워크를 통한 다른 컴퓨터 상 프로세스간
- 서로 필요한 설정 필요
- signal/pipe/message passing/shared memory/socket/Remote procedure call(RPC)
시그널(signal, 신호)
- event 발생시 프로세스에 알려주는 소프트웨어 인터럽트
- 발생 자체만 전송(데이터는 불가)
- 프로세스는 시그널의 수신(catch)/무시(ignore)/마스킹(mask) 가능
메시지 전달(message passing) 기반 프로세스간 통신
- 전송 방향: 한번에 한방향/양방향
- 전송 방식: 대기 전송(blocking,수신 확인 요구)/비대기 방식(non-blocking, 일방적 전송)
파이프(pipe)
- 두 프로세스가 데이터를 교환할 수 있게 하는 buffer 역할을 하는, OS가 관리하는 영역
- 두개의 끝을 가지는 채널(통로)--커널의 메모리공간 구현
- pipe()로 파이프 생성+2개 파일 디스크립터(descriptor)생성
소켓(socket)
- 분산 시스템에서 프로세스간 통신 지원
- IP주소와 포트번호로 식별되는 통신 단말 제공
- 클라이언트-서버 구조 사용
RPC(Remote PRoceduce call, 원격 프로시저 호출)
- 다른 컴퓨터의 함수나 프로시저를 원격 사용을 위한 코딩 없이 프로그램에서 실행하는 기술
- Remote invocation(원격 호출), remote method invocation(RMI, 원격 메소드 호출)이라고도 불림
- Java RMI
'학교 공부 > 운영체제(OS)(3-1)' 카테고리의 다른 글
[OS] 5. 비동기 병행 실행(Asynchronous Concurrent Execution) (0) | 2023.04.06 |
---|---|
[OS] 4. Thread (0) | 2023.04.05 |
[OS] 3. 프로세스(Process)(1) (0) | 2023.03.29 |
[OS] 2. 하드웨어와 소프트웨어(3) (0) | 2023.03.21 |
[OS] 2. 하드웨어 및 소프트웨어(2) (0) | 2023.03.20 |
Comments