실행중인 프로세스 이름 받아 오기 : Process[] process = Process.GetProcessByName

실행중인 프로세스 종료 : process[0].KILL()


밑에 표는 도대체 뭔지 모르겠지만 일단 Keep....

ProcessStartInfo CMD = new ProcessStartInfo();

Process pro = new Process();

CMD.FileName = @"cmd"; // 실행할 응용프로그램의 경로를 설정


CMD.Window Style = ProcessWindowStyle.Hidden; // 실행할 프로그램을 숨긴다????

CMD.CreateNoWindow == true; // 실행할 프로그램의 창을 생성하지 않는다???????


CMD.UseShellExecute = false;

// 프로세스를 시작할 때 운영체제 셸을 사용할지 여부를 나타내는 값을 가져오거나 설정한다.

// 라고 MSDN이 그러는데 뭔소린진 잘 모르겠다....?????

CMD.RedirectStandardOutput = true; // CMD 창의 내용을 가져오기

CMD.RedirectStandardInput = true; // CMD 창의 데이터를 보내기

CMD.RedirectStandardError = true; // 오류내용 가져오기


pro.EnableRaisingEvents = false;

// 프로세스가 종료될 때 exited 이벤트를 발생시키지 않는다.

pro.StartInfo = CMD; // ProcessStartInfo의 인스턴트인 CMD를 넣어줌

pro.Start(); // 시작

pro.StandardInput.Write(@"Hi! I'm LOGIC!" + Environment.NewLine);

//마무리로 Environment.NewLine이 꼭 필요하다고 한다.

pro.StandardInput.Close(); // 닫음


textBox1.Text = process.StandardOutput.ReadToEnd();

// 해당 프로세스의 내용을 스트림으로 끝까지 읽어온다.

pro.WaitForExit();

pro.Close(); // 프로세스 종료

// textbox1에 CMD의 내용을 출력한다.


이건 도움이 되겠다!!(표에 안들어갈까...ㅠㅠ)

-----------------------------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.Diagnostics;

 

namespace ProcessInfoWrite

{

    class Program

    {

        static void Main(string[] args)

        {

            try

            {

                Process[] allProc = Process.GetProcesses();    //시스템의 모든 프로세스 정보 출력

                int i = 1;

                Console.WriteLine("****** 모든 프로세스 정보 ******");

                Console.WriteLine("현재 실행중은 모든 프로세스 수 : {0}", allProc.Length);

                foreach (Process p in allProc)

                {

                    Console.WriteLine("***** {0}번째 프로세스 ******", i++);

                    WriteProcessInfo(p);

                    Console.WriteLine();

                }

            }

            catch (Exception e)

            {

                Console.WriteLine(e.Message);

            }

        }

 

        private static void WriteProcessInfo(Process processInfo)

        {

            Console.WriteLine("Process : {0}", processInfo.ProcessName);

            Console.WriteLine("시작시간 : {0}", processInfo.StartTime);

            Console.WriteLine("프로세스 PID : {0}", processInfo.Id);

            Console.WriteLine("메모리 : {0}", processInfo.VirtualMemorySize);

        }

    }

}

'LANGUAGE > C#' 카테고리의 다른 글

오픈된 포트 확인  (0) 2015.11.04
Posted by OnewayK
,
1. 프로세스의 개념
A. 기본 개념
- 정의 : 프로그램이 실행되는 상태(state)로서 일련의 작업 단위이다.

- 특징
+ 능동적(active) 
*프로그램은 디스크에 저장된 파일이며 수동적이다.
+ 코드, 스택, 자료로 구성

- 프로세스의 구성
+ 신규(new) : 프로세스가 생성 중
+ 준비(ready) : 프로세스가 설정되어 대기 중
+ 실행(running) : 프로세스가 실행하는 중
+ 대기(waiting) : 프로세스가 이벤트 발생을 대기 중
+ 종료(terminated) : 프로세스가 실행을 종료

- 프로세스의 상태도

- 프로세스 제어 블록(PCB, Process Control Block)

+ PCB 특정 프로세스에 대한 정보를 가진 데이터 블록/레코드

+ 프로세스의 변화하는 모든 정보에 대한 기억 장소 역할

+ 구성

> 프로세스 상태(state)

> CPU 레지스터들, CPU 스케줄링(scheduling) 정보

> 프로그램 카운터(program counter)

> 메모리 관리 정보

> 계정(accounting) 정보

> 입출력 상태 정보


- 프로세스 간 CPU Switching        



B. 프로세스 스케줄링

- 스케줄링 큐란?

+ 스케줄링을 위해 PCB들이 연결되는 큐가 필요해짐

+ 큐의 연결 상태 : 활동체인(active chain)과 정적 체인(static chain)

+ 종류

* 작업 큐 : 프로세스가 시스템에 들어가면 작업 큐에 입력

* 장치 큐 : 특정 입출력 장치를 대기하는 프로세스 리스트

* 준비완료 큐 : 주 기억 장치에 상주하면서 준비 상태에서 실행을 기다리는 프로세스들로 구성

+ 프로세스 스케줄링의 표현                



- 스케줄러

+ 단기(CPU) 스케줄러

* 개념

> 실행 준비가 되어 있는 프로세스들 중 한 프로세스를 선택하여 CPU 할당

> 스케줄링은 프로세스간 문맥교환(Context Switching)이 일어나는 것

* 종류

> 스케줄링 알고리즘(miliseconds)

+ 장기(작업) 스케줄러

* 개념

> 디스크 공간에 제출된 프로세스들을 선택하여 주기억장치로 적재

> 최상 성능의 시스템은 I/O bound의 CPU bound의 적절한 혼합이 필요

> 다중 프로그래밍 제어

* 종류

> 프로세스 준비상태(seconds, minutes)

> 다중 프로그래밍의 정도

> 입출력과 계산 작업 혼합 

+ 중기 스케줄러

* 개념

> 메모리 공간 확보 또는 프로세스 혼합을 개선하기 위한 디스크 교체

> 교체된 프로세스를 다시 메모리로 적재


- 문맥교환(Context switch)

+ 정의

* CPU를 다른 프로세스로 전환하기 위해 이전의 프로세스 상태를 보관하고 새 프로세스를 보관된 상태로 적재하는 작업

* 전환하는 동안 어떠한 유용한 작업도 불가능

+ 문맥교환 시간

* 하드웨어 지원에 의해 결정

> 기억장치 속도, 레지스터 수, 특권명령 등

* 운영체제가 복잡할수록 문맥교환에 더 많은 작업 요구

'2015-2학기 > 운영체제' 카테고리의 다른 글

제 1장 운영체제와 컴퓨터 시스템 구조  (0) 2015.10.29
Posted by OnewayK
,
  1. 운영체제란?
    • 정의 : 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행하는 프로그램
    • 목적
      • 사용자가 프로그램을 수행하기 위해 컴퓨터와 쉽게 인터페이스 할 수 있는 환경 제공
      • 사용의 편리함 제공(효율성에 중점)
    • 운영체제가 하는 일
      • 운영체제 사용자와 시스템의 중재자 역할
      • 자원 할당 및 제어
        • 모든 자원을 관리
        • 효율적이고 공정하게 운영될 수 있또록 각 요청에 대한 자원 할당 결정
      • 사용자 프로그램 수행 제어
        • 컴퓨터의 부적절한 사용 방지를 위해 사용자의 수행 제어
  2. 컴퓨터 시스템 구조
    • 컴퓨터 시스템 구성 요소
      • 하드웨어
      • 사용자
      • 응용프로그램
      • 운영체제


'2015-2학기 > 운영체제' 카테고리의 다른 글

제 2장 프로세스  (0) 2015.10.29
Posted by OnewayK
,