UNIX环境高级编程:进程管理和通信
副标题[/!--empirenews.page--]
进程和程序的区别: 进程: 程序的一次执行过程 动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令、数据的有序集合 是个文件,可直观看到 程序program 静态的概念,本身不会发生变化。指令谁来执行,数据谁来访问?cpu! 但前提是cpu能够接触到,程序执行过程需要cpu、内存、以及相关的资源。 进程是动态的,需要执行时才创建,运行结束要回收,包括创建、调度、执行、消亡的过程。 二者是关系:无程序进程就无意义,是内容与形式的关系。 一个程序的执行,至少创建一个进程。 一个进程的内容 叫进程控制卡,PCB,它是个理论上的东西,不同的系统实现不一样,Linux里用task_struct 来描述 进程的特点: 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推。 进程通讯原因: 数据传输 资源共享 通知事件 进程控制 进程互斥:多个进程同时要访问一个共享资源时,同时只允许一个进程访问,直到访问结束,释放后其他进程才能访问。 临界资源:同一时刻只允许一个进程访问的资源,进程中访问临界资源的那段程序代码称为临界资源。 进程同步:一组并发的进程按一定的顺序执行,具有同步关系的一组并发进程为合作进程,合作进程间互相发送的信号称为消息或事件。 死锁:多个进程竞争一种资源而形成的一种僵局,若无外力作用,这些进程无法继续向前推进。解决方法:主要有预防,使进程访问资源的顺序一致。 进程的类型: 交互进程 批处理 守护进程 进程的状态 运行态(正在运行和准备运行的) 等待(可中断等待、不可中断等待) 僵尸态 停止态 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |