Operating Systems Chapter 03 프로세스 개념.

Slides:



Advertisements
Similar presentations
컴퓨터와 인터넷.
Advertisements

인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
최윤정 Java 프로그래밍 클래스 상속 최윤정
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
연결리스트(linked list).
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
스레드란? 멀티 태스킹(muli-tasking)는 여러 개의 애플리케이션을 동시에 실행하여서 컴퓨터 시스템의 성능을 높이기 위한 기법 그림23-1. 병철 처리의 예.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
Root Filesystem Porting
Chapter 06 프로세스와 예약작업 관리 Solaris 1. 프로세스 관리
3 프로세스와 스레드.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Root Filesystem Porting
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
10 장 데이터 링크 제어(Data Link Control)
Sungkyunkwan University OS Project Dongkun Shin
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
03. 병행 프로세스 (Parallel Process)
2장 프로세스 과목: 운영체제 학번: 이름:오승현.
2주차 운영체제-프로세스 2-B 장정훈.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
Operating system #2 Process
Operating Systems Chapter 03 프로세스 개념.
Method & library.
자바 5.0 프로그래밍.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
메모리 관리 & 동적 할당.
3장 프로세스와 스레드 프로세스의 상태와 변환 과정을 이해 한다 프로세스의 생성과 종료 등 프로세스에 대한 작업을 이해한다.
2.1 개요 ★TIP 프로세스란? 부팅 실행중인 프로그램, 비동기적 행위 등
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
자바 5.0 프로그래밍.
2. 프로세스 관리 프로세스 중단과 재시작 중단과 재시작을 추가한 프로세스 상태 변화
논리회로 설계 및 실험 5주차.
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
Chapter 12. 파일, 프린트 서버관리 네트워크 환경에서 파일서버, 프린트 서버를 구축하여 사용하는 것은 기본이다. 효율성 있는 파일서버의 관리방법에 대해서 설명하고 있으며, 프린트 서버를 운영할 때 참고할 만한 기능에 대해서도 설명한다. 분산파일시스템, 디스크할당량.
ARM Development Suite v1.2
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
ATmega128의 특징 아이티즌 기술연구소
( Windows Service Application Debugging )
Linux/UNIX Programming
OpenCV 설정 2.21 만든이 딩딩.
AT MEGA 128 기초와 응용 I 기본적인 구조.
3. 모듈 (5장. 모듈).
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
9 브라우저 객체 모델.
Numerical Analysis Programming using NRs
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
제 4 장 Record.
엔코더 프로그램 설명 // 쓰레드를 사용하기 때문에 변수와 핸들을 전역변수로 지정 HANDLE hDevice;
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
Completion Port기반의 채팅프로그램
과 목 명 : 운영체제 담당교수 : 박 승 기 학 과 : 컴퓨터 소프트웨어 학 번 : 이 름 : 최 현 식
Reversing 발표자 : 박현우.
CODE INJECTION 시스템B 김한슬.
Power Java 제23장 스레드.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
7 생성자 함수.
6 객체.
2. 프로세스 B 안우진 - 운영체제 -.
Presentation transcript:

Operating Systems Chapter 03 프로세스 개념

1. 프로세스 관리 프로세스(process)와 프로그램(program) 보조기억장치에 저장된 프로그램(정적)을 실행 시키기 위해 주 기억장치로 옮기면 이는 프로세스(동적)가 된다. “프로그램을 작성한다”, “프로세스를 실행시킨다”. Practical Operating Systems

1. 프로세스 관리 프로세스(process)와 프로그램(program) 프로세스 : 시스템의 작업 단위로 다음의 정보들이 필요하다 PID(Process IDentification) : 주 기억 장치내 여러 개의 프로세스가 상주하므로 프로세스들 간의 구분자가 필요 프로세스의 저장 위치(메모리 보호) 필요 프로세스의 PC register 및 상태 register 정보가 필요 이들 프로세스의 정보를 관리하는 PCB(Process Control Block)가 존재한다. process = program + PCB, program = process - PCB Practical Operating Systems

1. 프로세스 관리 Practical Operating Systems

1. 프로세스 관리 커널 프로세스와 사용자 프로세스 커널(시스템) 프로세스 : 운영체제 또한 주 기억 장치에 상주된 프로세스로 이를 커널(시스템) 프로세스라 하며 모든 시스템 메모리와 프로세서의 명령에 액세스할 수 있는 프로세스이다. 프로세스 실행 순서를 제어하거나 다른 사용자 및 커널 영역을 침범하지 못하게 감시하고 사용자 프로세스를 생성하는 기능을 한다. 사용자 프로세스 : 일반 사용자 프로그램이 실행을 위해 주 기억 장치에 상주되면 PCB가 생성되며 이를 사용자 프로세스라 한다. 커널 프로세스가 사용자 프로세스 보다 우선 순위가 높다. Practical Operating Systems

1. 프로세스 관리 프로세스 상태(process status) 생성(create) : 프로세스가 메모리에 올라와 실행 준비가 완료된 상태(해당 PCB 생성) 준비(ready) : 생성된 여러 개의 프로세스가 cpu의 순서를 기다린다. 실행(execute) : cpu에 의해 준비상태의 프로세스를 일정 시간 동안 실행 대기(blocking) : 실행 상태의 프로세스가 입출력 요구 시 입출력 완료 시까지 기다리는 상태, 입출력이 끝나면 준비상태로 변환 완료(terminated) : 프로세스의 작업 종료(해당 PCB 제거) Practical Operating Systems

1. 프로세스 관리 간단한 프로세스 상태도 Practical Operating Systems

1. 프로세스 관리 프로세스의 상태도 Practical Operating Systems

1. 프로세스 관리 프로세스 상태( process status) 용어 정리 일시 정지(suspended status, pause status) : 대기상태와 유사하며 프로세스가 일시적으로 작업을 중지한 상태 예, UNIX의 sleep() 함수 sleep(100) 명령 실행 시 100msec 동안 일시 정지 상태가 된다. 용어 정리 CPU scheduler : 준비 상태의 프로세스들 중 실행하기 위해 하나의 프로세스를 선정하는 작업을 담당 Dispatch(디스패치) : 준비 상태에 있는 프로세스를 실행 상태로 옮기는 작업 Context switching(문맥교환) : 한 프로세스에서 다른 프로세스에게로 CPU가 할당되는 과정 Practical Operating Systems

1. 프로세스 관리 PCB, 프로세스 제어 블록 (Process Control Block) 프로세스가 작동하는데 필요한 중요한 정보를 보관하는 자료구조이며 TCB(Task Control Block)라고도 불린다. PCB는 프로세스 생성 시 만들어지며 모든 프로세스는 고유의 PCB를 가지며, 프로세스 완료 시 해당 PCB가 폐기 된다. PCB의 내용은 프로세스 상태 정보 프로세스 구분자(PID) PC register 내용 : 다음에 실행될 위치의 주소 프로세스 우선순위 레지스터 정보 메모리 관리 정보 : 프로세스가 저장된 메모리 관련 정보 할당된 자원 정보 : 프로세스 실행을 위하여 사용하고 있는 자원의 정보 계정 정보 : 계정 번호, CPU 할당 및 사용 시간 등의 정보 부모, 자식 프로세스 정보 : 상속에 관련된 부모, 자식 프로세스의 정보 Practical Operating Systems

1. 프로세스 관리 Practical Operating Systems

1. 프로세스 관리 입출력 대기 큐(Queue) Practical Operating Systems

1. 프로세스 관리 Context Switching (문맥교환) 프로세스들의 상태를 바꾸는 작업을 지칭한다. Practical Operating Systems

2. 프로세스 연산 Process Creation (프로세스의 생성) 프로세스는 code area(코드 영역) : 프로세스의 본문에 해당 , 읽기전용 영역 예) 요리책 Data area(데이터 영역) : 코드가 실행되면서 사용하는 변수나 파일과 같은 데이터들의 영역. 예) 요리의 재료들 stack area(스택 영역) : 운영체제가 프로세스를 실행시키기 위해 부가적으로 필요한 데이터들을 모아 놓은 영역. 예) 조리 도구들 으로 구성한다. Practical Operating Systems

프로세스의 구성 Practical Operating Systems

2. 프로세스 연산 Process Creation (프로세스의 생성) fork() system call : UNIX OS의 프로세스 생성 함수 (복사) Practical Operating Systems

2. 프로세스 연산 Process Creation (프로세스의 생성) 장점 : 자식프로세스의 생성이 빠르다. (보조기억장치를 접근할 필요 없음) 부모 프로세스의 자원을 상속 받는다. (별도 추가 요구 작업 불필요) 부모 프로세스에서 자원에 대한 관리를 효율적으로 처리 Practical Operating Systems

2. 프로세스 연산 Process Creation (프로세스 생성의 예) Practical Operating Systems

2. 프로세스 연산 Process Replacement (프로세스 전환) exec() system call : 현재 실행 중인 프로세스를 새로운 내용으로 바꾸는 시스템 함수 Practical Operating Systems

2. 프로세스 연산 Process Replacement (프로세스 전환) exec() system call : 현재 실행 중인 프로세스를 새로운 내용으로 바꾸는 시스템 함수 프로세스 구분자(PID, PPID, CPID)만 남겨 두고 프로세스의 나머지 내용을 새로운 것으로 모두 바꿔버린다. Practical Operating Systems

2. 프로세스 연산 Process Replacement (프로세스 전환의 예) 2) 1) 4) 3) 5) 6) Practical Operating Systems

2. 프로세스 연산 Process Hierarchy (프로세스의 계층구조) 운영체제에 있는 모든 프로세스는 root 프로세스의 자식이며 tree 구조로 이다. 프로세스의 계층 구조는 프로세스간의 책임 관계가 분명해져서 시스템 관리가 수월해 진다. init 프로세스에서 fork()와 exec()를 이용하여 사용자 login 프로세스를 만든다 login 프로세스는 exec()를 이용하여 shell 프로세스로 바꾼 후 사용자의 명령을 기다린다. fork()와 exec() 이용 Practical Operating Systems

2. 프로세스 연산 Process Hierarchy (프로세스의 계층구조) 프로세스가 작업을 마쳤을 경우, 그 프로세스가 사용하던 여러 자원들을 운영체제가 회수하는데 모든 프로세스가 부모-자식 관계로 만들어져 자식 프로세스가 작업을 마쳤을 때 부모 프로세스가 자식이 사용했던 자원을 회수하므로 관리가 수월하다. Garbage collection : 운영체제가 주기적으로 부모가 회수하지 못한 자원을 회수하는 작업을 말함. 현대의 객체지향 프로그램의 기본이 되었다. Practical Operating Systems

3. 스레드(Thread) Thread Concept (스레드 개념) Benefits of Thread (스레드의 장점들) 프로세스의 일부를 공유하는 작은 프로세스를 thread (가벼운 프로세스, LWP) 라 하며, 한 개의 thread만을 가진 일반 프로세스를 무거운 프로세스(HWP)라 한다. cf. CPU가 독립적으로 처리하는 하나의 작업 단위 (바느질의 실), JAVA Benefits of Thread (스레드의 장점들) fork()를 사용하여 프로세스를 복사하면 부모 프로세스와 자식 프로세스가 똑같은 내용을 가지게 되어 중복이 발생된다. 이런 중복을 피하기 위해 공유부분을 제외한 실행과 관련된 부분을 thread로 분리하여 관리함으로써 중복을 피하고 자원의 낭비를 막을 수 있다. 즉, 같은 프로세스로 여러 개의 작업을 동시에 진행하는 경우, 프로세스를 복사하기 보다는 thread를 여러 개 생성하여 사용함으로써 불필요한 작업을 줄일 수 있다. Practical Operating Systems

3. 스레드(Thread) Window NT/XP, Solaris 등 전통적 방식인 MS-DOS Practical Operating Systems

3. 스레드(Thread) 비디오재생기 프로세스의 예 Practical Operating Systems

3. 스레드(Thread) Benefits of Thread (스레드의 장점들) 응답성 향상 : 다중 스레드를 사용하게 되면 사용자의 작업 요구에 대하여 빠른 응답을 해줄 수 있다. 자원의 공유 : 1개의 프로세스 내에 독립된 스레드를 생성하게 되면, 프로세스의 자원을 모든 스레드가 공유하게 되어 작업을 원활하게 진행할 수 있다. 효율성 향상 : 프로세스의 생성과 달리 다중 스레드의 경우 불필요한 자원의 중복을 막을 수 있어 시스템 효율성이 향상된다. 다중 CPU 지원 : 한 개 이상의 CPU를 가진 컴퓨터에서 다중 스레드를 사용하면 다중 CPU가 다중 스레드를 동시에 처리할 수 있어 throughput 향상과 프로세스의 처리시간이 단축된다. Practical Operating Systems

Practical Operating Systems

3. 스레드(Thread) Multi Thread Model (다중 스레드 모델) 프로세스는 커널 프로세스 사용자 프로세스 프로세스는 커널 프로세스 사용자 프로세스 로 구분 하듯이 스레드 커널 스레드 : 커널이 직접 생성하고 관리하는 스레드 사용자 스레드 : 라이브러리에 의해 구현된 일반적 스레드 사용자 스레드가 커널 스레드를 사용하기 위해서는 시스템 호출을 통해 커널 기능을 사용해야 한다. Practical Operating Systems

3. 스레드(Thread) 사용자 스레드 대 커널 스레드 모델 다 대 일(many-to-one) 모델 : 커널 스레드가 대기상태이면 사용자 스레드도 대기하게 됨. 병렬성이 없음. Practical Operating Systems

3. 스레드(Thread) 사용자 스레드 대 커널 스레드 모델 일 대 일(one-to-one)모델 : 독립적으로 작업이 가능하며, 동시에 처리할 수 있는 작업의 양이 증가. 병렬성은 보장되나 사용자 스레드 생성 시 커널 스레드를 생성 오버헤드로 인한 성능 저하 요인, 스레드의 수를 제한함. (windows 계열, Linux) Practical Operating Systems

3. 스레드(Thread) 사용자 스레드 대 커널 스레드 모델 다 대 다(many-to-many)모델 : 커널 스레드의 수가 사용자 스레드의 수보다 같거나 작은 모델로 커널 스레드가 2개 이상 있어 대기상태가 아닌 커널 스레드가 대신 일을 처리할 수 있어 동시에 처리할 수 있는 작업량이 늘어나지만, 일 대 일 방식보다 동시에 처리할 수 있는 작업량이 같거나 적다. Practical Operating Systems

4. Advanced Topics Dual Mode 프로세스는 크게 커널 프로세스와 사용자 프로세스로 나뉘며, 커널 프로세스가 실행되는 상태를 kernel mode(커널 모드), 사용자 프로세스가 실행되는 상태를 user mode(사용자 모드)라 부른다. 운영체제가 위 두 가지의 모드를 전환하여 사용하는 것을 dual mode(이중 모드)라 부르며, 자원을 보호하는 중요한 개념이다. 사용자 프로세스가 자발적으로 커널 모드로 진입할 수 있는 유일한 수단은 시스템 호출뿐이다. Practical Operating Systems

4. Advanced Topics 미아프로세스(orphan process), 좀비(zombie) 프로세스 Practical Operating Systems

4. Advanced Topics 미아 프로세스 방지를 위해 wait() system call 사용 Practical Operating Systems