운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Advertisements

아름다운 이들의 행복한 길음안나의 집.
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
강의 기법과 상황대처 경기도 마약퇴치운동본부 김이항 약사 10.
Chapter 1. 운영체제의 개요 이태호.
소프트웨어와 운영체제.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
제 2장 컴퓨터 구조.
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
Ablecom Type-7 IVR 에이블컴 기술연구소.
정보통신실습 및 특강(5)
커뮤니케이션 스킬 UP -전화매너- ..
HP ESSO Consulting Glance Manual
Premier Test 초급 이름 : • 속진 레이아웃(버전3)
오목게임 W32 로봇시스템제어(하) GROUP 7 노성동, 하선웅, 김관준
임베디드 하드웨어 Lecture #6.
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
제 2 장 프로세스 관리 2.1 개요 프로세스 스케줄링은 준비완료(ready) 상태에 있는 프로세스들 중 어느 것을 중앙처리장치에 할당시킬 것인가를 결정 중앙처리장치 처리율(throughput)의 최대화와 반환 시간(turnaround time)의 최소화 2.2 프로세스.
운영체제 (Operating Systems)
프로세스 관리.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
임베디드 운영체제 (리눅스 중심) Lecture #2.
Ch 14. System Thread.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
오토메타 형식언어 2003년도 제 2학기.
Lecture #3 프로세스(Process).
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter2 프로세스란 조은성.
Operating System 5주차 - System Call Analysis -
Lecture #3 프로세스(Process).
DataStage 운영자 지침서 Operator’s Guide
운영체제 (Operating Systems) (Multi-Thread Programming)
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
6 단일 프로세서 스케줄링.
제2장 프로세스 이나현.
BLACK OUT 신개념 연합동아리 블랙아웃에서 1기를 모집합니다!
제5장 CPU스케줄링(CPU Scheduling)
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
2015. 인문소양교육.
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
운영체제 (Operating Systems) (Memory Management Strategies)
Linux/UNIX Programming
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
삼안 인트라넷 메뉴얼.
CHAPTER 04 파일 설계(FiLE Design).
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
체크포인트 가정 내 일어나는 사고에 대해 알아보고 사고예방을 위해 주의한다. | 예방법 장소별 사고 – 방과 거실 1 2 높은 곳 에 물건 두지 않기! 날카로운 모서리는 천으로 씌우기!
제 3 장 운영체제와 입출력 방식 Section 1 입출력 기능 Section 2 입출력 방식 Section 3 입출력 버퍼링
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
제4장 CPU 스케줄링 이나현.
Lecture #3 프로세스(Process) 신라대학교 컴퓨터공학과 - 운영체제.
운영체제 학번 : 이름 : 이원석 반 : 2B.
(제작자: 임현수)모둠:임현수,유시연,유한민
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
Lecture #3 프로세스(Process).
Windows System Programming
소리가 작으면 이어폰 사용 권장!.
Linux/UNIX Programming
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
임베디드 하드웨어 Lecture #6.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
2. 프로세스 B 안우진 - 운영체제 -.
Presentation transcript:

운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어) 2. 프로세스란?(실행 중인 프로그램) A200812032 조사선

프로세스의 정의 프로세스의 정의 프로세스의 역할 수행 두 개의 프로세스가 같은 프로그램(문서편집기) 사용 프로세스의 정의 프로세스의 정의 실행중인 프로그램(가장 보편적으로 사용) 비동기적 행위(Asynchronous Activity) 프로시저가 활동중인 것 실행중인 프로시저의 제어 추적 운영체제 내에 PCB(Process Control Block)가 존재 프로세서가 할당하는 개체 디스패치가 가능한 대상 등 프로세스의 역할 수행 프로세서 점유, 메모리, 파일, 입출력 장치 - 자원 필요 프로세스 생성이나 실행 - 자원 할당 프로그램 코드, 프로그램 카운터, 프로세서 레지스터 내용 포함 데이터베이스, 문서편집기 - 재진입 프로그램 스택과 공통 자료를 보관하는 자료부분 두 개의 프로세스가 같은 프로그램(문서편집기) 사용 별개의 프로세스로 인식 [이유]코드 부분은 같지만 각기 별도의 스택에 다른 자료를 가짐 

프로세스의 종류 운영체제 프로세스 : 커널 프로세스, 시스템 프로세스 사용자 프로세스(User Process) 프로세스들의 실행순서 제어, 중요한 시스템 감시 기능 담당 시스템 운영에 필요한 코드 수행 사용자 프로세스(User Process) 사용자 코드를 수행하는 프로세스 병행 프로세스(Concurrent Process) 여러 개의 프로세스가 동시에 수행되는 상태 병행성(동시성)동시에 시스템에 존재하나 어느 순간에는 단지 한 프로세스만 프로세서에서 실행 서로 관련이 없는 독립적인 프로세스와 다른 프로세스와 서로 협력하면서 수행하는 협동 프로세스로 구분 독립 프로세스 주어진 초기값에 따라 같은 결과를 보여주는 프로세스 다른 프로세스와 자료 미공유 협동 프로세스 다른 프로세스에게 영향을 주거나 영향을 받는 경우 제한된 자원 서로 공유하는 프로세스 사⇒ 통제된 상호 작용하는 경우에 발생 협동 필요한 경우 : 서로 통신을 위한 수단과 동기화 기능 필요

프로세스 제어 블록 프로세스 PCB : 작업 제어 블록 프로세스 상태 프로그램 계수기(program counter) 레지스터 PCB(Process Control Block)에 의해 운영체제 내에 표현 PCB : 작업 제어 블록 프로세스에 대한 자료 블럭 또는 레코드 프로세스의 현 상태, 식별자, 우선순위, 스케쥴링 정보, 메모리,시스템 자원, 계정 정보, 레지스터의 값 등에 관한 정보 보유 운영체제의 모듈에 의해 판독되고 수정 프로세스 생성시에 만들어지며 메인메모리에 유지 운영체제 내에서 한 프로세스 존재 정의 실행이 종료된 프로세스 : 해당 PCB 삭제 프로세스 상태 신규, 생성(new), 준비(ready), 실행(running), 보류(Blocked), 중단(halted)등 상태 표시 프로그램 계수기(program counter) 프로세스를 수행하기 위한 다음 명령의 주소 표시 레지스터 누산기(accumulator), 색인 레지스터(index register), 범용 레지스터, 조건 코드(condition code) 등 계정정보(account information) 프로세서 사용시간, 실제 사용시간, 사용상한 시간, 계정 번호, 작업이나 프로세스 번호 등 포함. 입출력 상태정보(I/O status information) 특별한 입출력 요구 프로세스에 할당된 입출력 장치, 개방된(opened) 파일의 목록 등 유지

프로세스 제어 블록 프로세서 스케줄링 정보 메모리 관리 정보 PCB : 모니터 메모리 영역에 저장 프로세스와 프로그램 프로세스의 우선 순위, 스케줄링 큐에 대한 포인터, 그 외 다른 스케줄 매개 변수를 가지고 있음 메모리 관리 정보 메모리 영역 정의 : 하한 및 상한 레지스터(경계레지스터) 페이지 테이블 정보 PCB : 모니터 메모리 영역에 저장 최대 프로세스의 수 선언, PCB에 공간을 미리 할당 시간에 따라 변화하므로 동적 기억 장소 관리가 바람직함 프로세스와 프로그램 프로그램 자체 : 프로세스가 아님 프로그램 : 여러 개의 프로세스들로 생성 디스크 상에 저장되어 있는 파일의 내용 수동적인 정적 단위 프로세스 : 능동적인 객체 사용 자원(프로그램 카운터, 레지스터 등) 정보 프로세스 실행 과정에서 다른 프로세스를 파생할 수 있음 프로세스 ⇒ 프로그램 실행을 위한 메모리영역, PCB등의 자원을 할당 받은 상태가 됨

프로세스 상태 전이 준비(Ready) 상태 보류(Blocked)/대기 상태 실행(Running) 상태 실행 프로세스 : 프로세스의 시간 할당량 초과시, 보류(Blocked) 프로세스 : 보류된 이유가 보류(Blocked)/대기 상태 실행 프로세스가 프로세서에서 수행을 하다가 입출력 명령 또는 유사한 요청을 낼 때 실행(Running) 상태 준비 상태의 프로세스가 디스패처(Dispatcher)에 의해 프로세스가 부여될 때

프로세스 상태 전이 준비 → 실행 : “디스패칭(Dispatching)” 실행 → 준비 준비 리스트의 맨 앞에 있던 프로세스가 프로세서 선택 상태 변환 표시 dispatch(프로세서 명) : 준비 → 실행 시간 할당량(time guantam) 실행 프로세스에게 일정시간 프로세서 사용할 수 있는 시간 제한 제한 이유 특정프로세스가 프로세서 계속 독점 사용 예방 실행 → 준비 프로세스가 프로세서 점유 상태  “프로세스 실행 상태” 프로세서 독점 방지 - 인터럽트 클럭 이용 - 프로세스 ⇒ 프로세서 점유(지정 시간 동안) - 일정한 시간 경과 후 프로세서 점유 ⇒ 클럭이 인터럽트를 발생시켜 운영체제가 프로세서 제어권 갖게 됨 운영체제가 제어권 보유 : 실행 상태 준비 상태(프로세스) 준비 리스트 내의 첫 프로세스가 실행 상태로 됨 상태 변환 표시 : timerunout(프로세스 명) : 실행 → 준비

실행 → 보류 보류 → 준비 프로세서 양도 ⇒ 스스로 보류 상태로 가게 됨 새로운 자원 요청 등 기타문제 발생 실행 상태의 프로세스가 지정된 시간 이전에 입출력 연산 필요로 할 경우 새로운 자원 요청 등 기타문제 발생 상태 변환 표시 :block(프로세스 명) : 실행 → 보류 보류 → 준비 입출력 작업이 끝났을 때에 발생하는 깨움(wake up)상태 보류 상태로부터 준비 상태로의 변환 상태 변환 표시 : wakeup(프로세스 명) : 보류 → 준비 프로세스 자신이 프로세스 변환 – 보류 나머지 상태 변환 - 외적 조건에 의해 발생

프로세스 생성 수행 시작(프로세스 생성 추가) 프로세스의 생성 하나의 프로세스가 다른 프로세스의 생성 허용 PCB를 만들어 프로세스 생성, 프로세스에게 주소 공간 할당 일괄처리 환경 - 작업이 제출될 때 대화형 환경 - 새로운 사용자의 로그온(log on)이 프로세스의 생성 운영체제의 도움 사용자의 애플리케이션 요청 [예] 사용자의 요청 : 프린터를 구동시키는 프로세스 생성 출력 작업 완료 하나의 프로세스가 다른 프로세스의 생성 허용 생성된 프로세스 : 자식 프로세스 생성시키는 프로세스 : 부모 프로세스

프로세스 종료 프로세스 마지막 명령 실행(프로세스 종료) 일괄처리 환경 운영체제 대화형 환경 운영체제 프로세스 마지막 명령 실행(프로세스 종료) 운영체제에게 프로세스 삭제 요청 일괄처리 환경 운영체제 작업의 종료 신호 : 인터럽트 발생시켜 통보 중지 명령(시스템 호출) 프로세스 완료 대화형 환경 운영체제 사용자가 로그 오프(log off) 터미널 끌 때 발생 여러 오류에 의해 발생 가능   [예] abort 시스템 호출 - 종료 프로세스 생성시킨 부모 프로세스만 가능 부모가 자식의 생사권 보유 다른 사용자들이 서로 상대방의 작업 중단 방지 새로운 프로세스 생성 새로운 프로세스의 신원(identity)을 부모에게 전달

프로세스 제거 프로세스 제거 자신을 생성한 부모 프로세스 소멸 시스템으로부터 프로세스를 제거하는 것 프로세스에 속해있던 자원은 다시 시스템으로 돌아가고 프로세스는 시스템 리스트 또는 테이블에서 사라지고 PCB가 회수되며 프로세스는 제거됨 프로세스의 프로그램 부분은 디스크에 저장 자신을 생성한 부모 프로세스 소멸 ⇒ 자식 프로세스들도 자동적으로 소멸

서스펜드와 재시작 프로세스의 준비, 실행, 대기(보류) 상태 이용 해결 방법 실행할 프로세스 선택 방법 ⇒ 시스템의 유휴 상태 입출력 동작 시간이 연산 시간 보다 느리기 때문 프로세서의 동작 시간이 입출력 동작보다는 짧기 때문 Windows상에서 수행 중인 윈도우 이외 대기 상태 ⇒ 옅은 색으로 바뀜 해결 방법 프로세스의 일시 중지 상태(서스펜드 상태) 이용 실행할 프로세스 선택 방법 새로운 프로세스를 생성하여 실행 이미 실행 중에 있던 프로세스를 중지시켰다가 다시 실행 일시 정지 후 다시 실행시키는 프로세스 과정 시스템 전체의 부하를 증가시키지 않고 프로세스에게 서비스 제공 실행 상태에서 일시 중지 상태(서스펜드 상태)를 추가 특정 이벤트의 발생을 기다리며 대기 상태로 변함 해당 이벤트 발생으로 즉시 실행 상태로 변환할 수 있음 서스펜드 프로세스가 입출력 요구 이외의 다른 원인으로 수행이 중단되어 있는 상태(자원 부족(대기) 상태) 중단된 프로세스는 기다리는 이벤트가 발생되면 중단 이전의 상태로 되돌아 감

서스펜드와 재시작 재시작 프로세스 서스펜드하고 재시작 -시스템의 부하 조정 프로세스의 서스펜드와 재시작 경우 중단 원인이 제거되어 다시 수행되는 것 프로세스 서스펜드하고 재시작 -시스템의 부하 조정 프로세스의 서스펜드와 재시작 경우 시스템 장애 발생 실행 프로세스 : 잠시 서스펜드 시스템 기능 회복 : 다시 재 시작 프로세스 부분이 의심스러움 실행 프로세스 서스펜드 시킴 : 확인 후 재 시작, 정지 여부  결정 시스템 부담 발생 몇 개의 프로세스 서스펜드 시킴 시스템 다시 정상 상태 복귀 : 재 시작 프로세스가 실행되기 전에 자원을 배당받고 실행 시작 다중프로그래밍 환경 - 동적자원 배당 자원의 이용율과 시스템 효율 향상 배당된 자원을 기다리는 경우 -서스펜드 상태 자원을 할당 받으려고 기다리는 상태 - 대기(보류) 상태 사용가능 장치가 부족할 경우 대기(보류) 상태 대기(보류) 상태 - 시간이 경과되면 요청한 자원을 사용 대기(보류) 상태  준비 상태 문제 하드웨어 고장 다른 프로세스가 해당자원을 반환할 수 없는 상태 - 교착상태

서스펜드와 재시작 프로세스 상태 변환 : 서스펜드와 재시작 추가 추가 ⇒ 서스펜드된 준비 상태와 서스펜드된 보류 상태

인터럽트의 종류 감시 프로그램 호출 인터럽트 입출력 인터럽트 외부 인터럽트 재시작 인터럽트 프로그램 검사 인터럽트 사용자가 함부로 운영체제 내에 들어올수 없으며 반드시 SVC를 통해 서비스를 받도록 하는것 입출력 인터럽트 입출력이 완료되었거나 에러가 발생 했을 때 알려주는 것 외부 인터럽트 인터럽트 시계에서 일정한 시간이 만료가 된 경우 또는 인터럽트 키를 입력하는 경우 또는 다중 처리 시스템에서 다른 CPU로 부터 신호가 왔을 경우에 발생 재시작 인터럽트 콘솔에서 재시작 단추를 누를때 또는 다중 처리 시스템에서 다른 CPU로 부터 재시작 SIGP명령문이 도착되면 발생 프로그램 검사 인터럽트 수행중인 프로세스가 0 으로 나누거나 허용되지 않은 명령문을 실행 하거나오퍼레이션 코드를 잘못 사용한 경우

문맥교환 실행 중인 프로세스 인터럽트 인터럽트 발생 트랩(trap) 발생 인터럽트 처리 인터럽트의 예 다른 프로세스  실행 상태 :  프로세스에게 제어 넘겨줌 실행 프로세스로부터 제어 인수 : 운영체제 다른 프로세스에게 제어 이동(프로세스 교환 일으킴) 인터럽트 발생 실행 프로세스와는 별도로 외부에서 발생되는 여러 종류의 이벤트 (예 입출력 동작의 종료)에 의해 발생 트랩(trap) 발생 부적절한 파일 접근 실행 프로세스에 의해 발생되는 오류나 예외 상황 때문에 발생 인터럽트 처리 인터럽트 처리 루틴으로 제어 이동 인터럽트 형태에 따라 관련된 운영체제 루틴으로 분기 인터럽트의 예 입출력 인터럽트 : 프로세스  준비 상태로 바꿈(실행 프로세스 결정) 클럭 인터럽트 : 할당 시간 조사 프로세스를 준비 상태로 변환하고 다른 프로세스를 디스패치  

문맥교환 운영체제에서 인터럽트 발생 트랩의 경우 문맥교환(context switching) - 프로세스 교환 과부하 발생 프로세스의 교환으로 이루어지지 않고 인터럽트 처리 루틴 실행된 후 실행중인 프로세스가 재실행 가능 트랩의 경우 치명적 오류인 경우 프로세스는 종료되고 프로세스 교환 발생 문맥교환(context switching) - 프로세스 교환 이전의 프로세스 상태 레지스터 내용 보관 또 다른 프로세스의 레지스터들을 적재하는 과정 프로세스가 준비 → 실행 상태 프로세스가 실행 → 준비, 실행 → 대기 상태 : 문맥교환 과정 발생 과부하 발생 메모리 속도, 레지스터 수, 특수명령어(모든 레지스터 하나의 명령어 보관)에 따라 다름 현행 레지스터 포인터 변경(모든 레지스터 포인터 변경 포함)

exit dispatch timeout sleep (schedule) (premier) (black) wakeup swap in swap in (resume) (resume) 활동 상태 swap out swap out 지연 상태 (suspend) 실행 상태 종료 상태 준비 상태 대기 상태 생성 상태 지연 준비 상태 지연 대기 상태