进程
2016-07-03 20:29
204 查看
为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。
进程的概念主要有两点:
第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。
线程
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。
使用进程,首先引入命名空间using System.Diagnostics;
进程的概念主要有两点:
第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
主要特征
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。
线程
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。
使用进程,首先引入命名空间using System.Diagnostics;
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace jincheng { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //Process.Start("calc");//开启计算器进程 Process.Start("iexplore","http://www.baidu.com");//打开IE浏览器,并打开指定网址 } private void button2_Click(object sender, EventArgs e) { openFileDialog1.Filter = "应用程序|*.exe";//打开文件对话框中打开文件所规定的文件类型 DialogResult dr = openFileDialog1.ShowDialog();//打开文件对话框 if(dr==DialogResult.OK)//如果用户点击确定 { textBox1.Text = openFileDialog1.FileName;//文本框的内容就是打开文件的绝对路径 } } private void button3_Click(object sender, EventArgs e) { Process p = new Process();//实例化process这个类 ProcessStartInfo pro = new ProcessStartInfo(textBox1.Text);//启动进程时使用的一组值 p.StartInfo = pro;//将p启动进程指向pro中的文件路径 try { p.Start(); } catch { MessageBox.Show("打开文件有误!"); } } } }
相关文章推荐
- 二叉树遍历的非递归实现
- 从P6 EPPM 8 R3 到P6 EPPM 16 R1 有哪些改变?
- 新的Android开发环境——Android Studio
- 剑指Offer算法题JAVA版13-20题(全是个人写的非官方,只供参考和自己复习,测试用例都通过了。)
- 使用跟踪和调试进行条件编译
- LeetCode22. Generate Parentheses
- Hibernate缓存机制
- 面向对象
- 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
- No result defined for action and result input
- java字符串分解 StringTokenizer用法
- 软件密码学基础和配置tomcat的https连接器
- 老婆我会好好照顾你的!
- 【测试工具】tcpdump + wireshark 抓包实践
- PHP的常用的几大模板引擎
- leetcode 137 Single Number II
- Android-自定义ViewPager指示器
- python 学习简记 《编程导论》 CH10&CH11
- Service与Thread
- Linux下Nginx1.8安装