Linux/UNIX Programming

Slides:



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

SPARCS 10 이 가 영 기본 UNIX 명령어. 일단 로그인 ! Linux login 시 계정을 입력하거나 root 를 입력 Root -> # 일반 사용자 -> $ 패스워드 : echo 기능을 꺼서 볼 수 없다. 대소문자 구분 패스워드 처음 설정 시 : ~$ passwd.
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
1 과제물 6 호 설명자료 제출마감 : 2012 년 12 월 3 일 ( 월 ) 24 시 이병완교수의 화폐금융론 2012.
지하철 안내 앱 소개 제작자 : 손성준 P.S 이 사진은 내용과 관계없음을 명백히 알립니다.( 솔직히 전기동차라는 공통점이 있긴 하지만 ) 그리고 본인이 촬영하였음을 알립니다.
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
좋은 강의 국제관계학과 정연식.
시작부터 끝까지 진지한 궁서체로 진행하는 완벽한 주입식의 하드코어한 리눅스/장난감 세미나
소프트웨어와 운영체제.
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
Linux/UNIX Programming APUE (Process Control)
뇌를 자극하는 Windows Server 2012 R2
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
Chapter 11 The C Shell.
System administration basics
인공지능실험실 석사 2학기 김승겸 TCP/IP Socket Programming… 제 10장 멀티태스킹 기반의 서버구현 인공지능실험실 석사 2학기 김승겸
Signal & Inter-Process Communication
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
제 2 장 프로세스 관리 2.1 개요 프로세스 스케줄링은 준비완료(ready) 상태에 있는 프로세스들 중 어느 것을 중앙처리장치에 할당시킬 것인가를 결정 중앙처리장치 처리율(throughput)의 최대화와 반환 시간(turnaround time)의 최소화 2.2 프로세스.
운영체제 (Operating Systems)
프로세스 관리.
Department of Computer Engineering
임베디드 운영체제 (리눅스 중심) Lecture #2.
[beginning] Linux & vi editor
UNIX Unbounded A Beginning Approach
6 프로세스 생성과 실행.
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
Department of Computer Engineering
한양사이버대학교 실시간(온라인) 시험 응시 안내서
제2장 유닉스/리눅스 사용.
fork로 생성한 자식 프로세스에서 exec 함수군을 호출
파일 및 디렉토리(1) 여러 함수들 chdir(“category”) || die “cannot cd to temp”;
2 운영체제 소개.
Chapter 06 프로세스와 예약작업 관리 Solaris 1. 프로세스 관리
Term Project Team Member
Chapter2 프로세스란 조은성.
Lecture #3 프로세스(Process).
DataStage 운영자 지침서 Operator’s Guide
운영체제 (Operating Systems) (Multi-Thread Programming)
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
제2장 프로세스 이나현.
제주닷컴 매뉴얼 (실시간 예약시스템) 2013년 10월.
Linux/UNIX Programming
제5장 CPU스케줄링(CPU Scheduling)
6. 파일 관리. pwd(print working directory)와 cd(change directory) ls(list)
Signal & Inter-Process Communication
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
리눅스: Lecture 1 강의개요 중앙대학교 컴퓨터공학부 손 봉 수 교수.
Ⅲ. 후기 신문학운동기의 문학 전형기 비평의 양상.
Linux/UNIX Programming APUE (Thread Programming)
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
23. Unix 시스템 커널. 개요 커널의 기본 서비스 커널의 특징 참고서적 프로세스 관리 장치 관리 파일 관리 가상 메모리
Department of Computer Engineering
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
Linux/UNIX Programming
기술 진화와 진보.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
운영체제 학번 : 이름 : 이원석 반 : 2B.
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
제4장 유닉스 쉘 숙명여대 창병모
소리가 작으면 이어폰 사용 권장!.
Signal & Inter-Process Communication
Linux/UNIX Programming
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
Presentation transcript:

Linux/UNIX Programming 프로세스 관리 명령어 문양세 강원대학교 IT대학 컴퓨터과학전공

프로세스란? 프로세스 관리 명령어 실행중인 프로그램으로서 자신의 작업을 처리하기 위하여 CPU 자원, 메모리, 파일, 입출력 장치와 같은 자원들을 필요로 하는 실행 코드  능동적인 개체 현재 실행 중이거나 곧 실행이 가능한 PCB(process control block)를 가진 프로그램 컴퓨터 시스템에 있어서 프로세스는 작업의 단위이며 컴퓨터의 모든 작업은 프로세스들의 집합체로 구성 보다 쉽게 이해하는 방법: 프로그램이 실행되면 프로세스임

프로세스의 상태 수행(running) 명령어들이 실행되고 있는 상태 (프로세스가 중앙처리장치를 차지하고 있는 상태) 프로세스 관리 명령어 수행(running) 명령어들이 실행되고 있는 상태 (프로세스가 중앙처리장치를 차지하고 있는 상태) 대기(waiting) 프로세스가 어떤 사건(입출력 종료와 같은)이 일어나기를 기다리는 상태 준비(ready) 프로세스가 CPU 에게 할당(CPU를 점유할 수 있게)되기를 기다리는 상태

프로세스 생성 (Process Creation) 프로세스 관리 명령어 프로세스는 실행 도중에, 프로세스 생성 시스템 호출(fork())을 통하여 여러 개의 새로운 프로세스들을 생성 (Shell이 생성하는 것도 마찬가지임) 생성하는 프로세스를 부모 프로세스(parent process)라 하고, 생성된 프로세스는 자식 프로세스(child process)라 함 하나의 부모 프로세스는 여러 개의 자식 프로세스를 가질 수 있지만 자식 프로세스는 여러 개의 부모 프로세스를 가질 수 없음 자식 프로세스는 운영체제로부터 직접 자원을 얻거나 부모 프로세스 자원의 일부분을 사용할 수 있음 각 프로세스마다 고유한 정수인 식별자(PID)를 가지고 있음

프로세스 종료 (Process Termination) 프로세스 관리 명령어 프로세스는 (프로그램의) 마지막 문장의 실행을 끝내고 종료하며, 운영체제에게 프로세스의 삭제를 요청 이 시점에서 자식 프로세스는 부모 프로세스에게 이를 알림 (signal 사용) 부모 프로세스는 다음과 같은 이유로 자식들 중 하나의 실행을 종료시킬 수 있음 자식이 할당된 자원을 초과하여 사용할 때 자식에게 할당된 일이 더 이상 필요 없을 때 혹은 사용자가 자신의 프로세스를 강제로 종료시킬 수 있음 (kill 명령어)

Foreground vs. Background (1/5) 프로세스 관리 명령어 Linux/Unix 시스템은 한번에 여러 작업을 동시에 할 수 있는 다중작업(Multi-tasking) 시스템 사용자가 한 명령어를 실행시키고 그 명령의 실행이 종료되어 결과가 출력될 때까지 다른 명령어를 실행하지 않고 기다리는 경우를 foreground로 수행한다고 함  우리가 지금까지 공부한 대부분의 명령어가 foreground로 실행됨 반대로 사용자가 하나의 명령어를 실행시킨 후에 그 실행이 끝날 때까지 기다리지 않고, 다른 명령어를 실행시켜 결과적으로 시스템 내에 복수개의 작업이 동시에 실행되도록 하는 경우를 background로 수행한다고 함

Foreground vs. Background (2/5) 프로세스 관리 명령어 Background에서 실행하는 것은 시간이 오래 걸리는 긴 작업일 때 유용 사용자가 명령어를 background로 실행시키면, 그 명령의 종료와 관계없이 즉시 프롬프트가 나타나서 다음의 명령어를 실행할 수 가 있음 Background로 지정하고 싶은 명령어 끝에 “&”를 붙여서 해당 명령어를 background로 실행시킬 수 가 있음

Foreground vs. Background (3/5) 프로세스 관리 명령어 Background 명령 수행의 예 1: 초기부터 Background로 수행 문자 & 가 의미하는 것은 “이 작업을 background에서 실행해라”라는 의미이며, 그 다음 라인은 백그라운드 프로세스의 관리를 편하게 하기 위한 정보로서 [1]은 Shell상의 작업제어를 위한 작업 번호, 25940은 프로세스 ID를 나타냄

Foreground vs. Background (4/5) 프로세스 관리 명령어 Background 명령 수행의 예 2: 수행 중에 Background로 전환 (control-Z(^Z) 및 bg 명령어를 사용하여 background로 전환) Foreground로 진행 중인 프로세스를 background로 전환할 경우 ctrl-Z(suspend:프로세스 중지) 키를 눌러서 suspend signal을 발생시켜 작업을 중지시킨 후, bg 명령어를 입력하면 그 작업이 background에서 실행됨

Foreground vs. Background (5/5) 프로세스 관리 명령어 Background 및 Foreground 모드 변환의 예 수행 중인 작업을 foreground로 전환하려면 fg명령어를 이용하며, background에 여러 개의 작업이 실행되고 있다면 jobs명령어로 그 목록을 확인할 수 있고, 작업 번호를 이용하여 특정 프로세스를 foreground로 변환할 수 있음

ps 명령어 (1/4) ps 명령어는 현재 존재하는 프로세스들이 실행 상태를 요약한 보고서를 출력해 줌 프로세스 관리 명령어 ps 명령어는 현재 존재하는 프로세스들이 실행 상태를 요약한 보고서를 출력해 줌 옵션이 주어지지 않으면 프로세스 식별번호, 명령어가 시작된 터미널, 프로세스에 사용된 CPU 시간, 그리고 명령어 그 자체를 나열 Default로 ps는 사용자가 자신의 프로세스들만 출력, 그러나 많은 경우 현재 시스템에서 실행되고 있는 모든 프로세스들에 대하여 다양한 정보를 포함하는 상태정보를 출력 $ ps [-options] Note: Option은 BSD 계열과 시스템 V 계열이 서로 다를 수가 있음

ps 명령어 (2/4) ps 명령어의 주요 option System V 계열인 경우 (일반적으로, ps, ps –ef를 이용) 프로세스 관리 명령어 ps 명령어의 주요 option System V 계열인 경우 (일반적으로, ps, ps –ef를 이용) e: 현재 시스템 내에 실행 중인 모든 사용자 프로세스 정보를 출력 f: 프로세스에 대한 좀 더 자세한 정보를 출력 BSD 계열인 경우 (일반적으로, ps, ps –a, ps –aux를 이용) a: 모든 사용자의 프로세스를 출력 u: 프로세스에 대한 좀 더 자세한 정보를 출력 x: 더 이상 제어 터미널을 갖지 않은 프로세스들도 함께 출력 ps 명령어의 option과 출력 결과 내용은 System V 계열과 BSD 계열이 서로 상이하므로, 이에 대한 자세한 사용법과 출력 결과의 해석에 대해서는 manual($man ps)을 사용하여 확인한 후 익히기 바람  대부분은 System V를 따르고 있음

ps 명령어 (3/4) 프로세스 관리 명령어 System V 계열인 경우

ps 명령어 (3/4) 프로세스 관리 명령어 System V 계열인 경우

ps 명령어 (3/4) 프로세스 관리 명령어 System V 계열인 경우

ps 명령어 (4/4) 프로세스 관리 명령어 BSD 계열인 경우

ps 명령어 (4/4) 프로세스 관리 명령어 BSD 계열인 경우

ps 명령어 (4/4) 프로세스 관리 명령어 BSD 계열인 경우

ps 명령어 (4/4) 프로세스 관리 명령어 BSD 계열인 경우

kill 명령어 (1/2) 프로세스 관리 명령어 kill 명령은 현재 (background로) 수행중인 프로세스를 강제로 종료시킴 (보다 정확하게는 수행중인 프로세스에 특정 signal을 전달하는 기능을 수행함) $ kill [-signal] PID 여기에서 PID는 프로세스 식별번호이고, signal은 프로세스에게 전달할 signal을 나타냄 Default signal은 15번인 SIGTERM(terminate)으로, 이 signal은 프로세스에게 수행을 중지하라는 메시지를 전달함 가끔씩 kill 명령어를 사용한 후에도 그 프로세스가 아직 존재하는 경우가 있는데, 이 경우에는 kill 명령어를 –9 옵션으로 실행하여 SIGKILL을 전달하여 강제 종료시킴

kill 명령어 (2/2) 프로세스 관리 명령어

kill 명령어 (2/2) 프로세스 관리 명령어

sleep 명령어 (1/2) 프로세스 관리 명령어 sleep 명령어는 말 그대로 지정된 시간만큼 실행을 중지함 (shell이 대기 상태로 기다림) $ sleep seconds sleep은 여러 명령어를 batch로 수행할 경우, 사용자의 의도에 의해 시간적인 gap을 두기 위하여 유용하게 사용됨

sleep 명령어 (2/2) 프로세스 관리 명령어