概念:
进程是进程实体的运行过程,它是系统进行资源分配和调度的一个独立单位。
进程特征:
动态性:进程的实质是进程实体的执行过程,因此,动态性是进程的最基本的特征。动态性还表现在:它由创建而产生,由调度而执行,由撤销而消亡。
并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。
独立性:进程实体是一个能独立运行、独立获取资源和独立接受调度的基本单位。
异步性:进程是按异步方式运行的,即按各自独立的、不可预知的速度向前推进。
进程的基本状态图:

 

 

 进程间通信方式:

1、管道/匿名管道 :用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。
2、有名管道: 匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道。有名管道严格遵循**先进先出(FIFO)。有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。
3、信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生;
4、消息队列:消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识。管道和消息队列的通信数据都是先进先出的原则。与管道(无名管道:只存在于内存中的文件;命名管道:存在于实际的磁盘介质或者文件系统)不同的是消息队列存放在内核中,只有在内核重启(即,操作系统重启)或者显示地删除一个消息队列时,该消息队列才会被真正的删除。消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取.比 FIFO 更有优势。消息队列克服了信号承载信息量少,管道只能承载无格式字 节流以及缓冲区大小受限等缺。
5、信号量:信号量是一个计数器,用于多进程对共享数据的访问,信号量的意图在于进程间同步。这种通信方式主要用于解决与同步相关的问题并避免竞争条件。
6、共享内存:使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种方式需要依靠某种同步操作,如互斥锁和信号量等。可以说这是最有用的进程间通信方式。
7、套接字:此方法主要用于在客户端和服务器之间通过网络进行通信。套接字是支持 TCP/IP 的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。

进程调度方式:

1、抢占式

这种调度方式允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给其他线程。

抢占式不是随意的抢占,而是遵循一定的原则,主要原则有:

(a)优先权原则,也就是允许优先级高的进程抢占当前进程的处理机。

(b)短进程优先原则,允许新到的短进程可以抢占当前长进程的处理机。

(c)时间片原则,即各种进程按时间片轮转运行时,当执行的进程的一个时间片用完,就会停止运行,而重新进行调度。

2、非抢占式

 一旦处理机分配给一个进程后,其他进程只能等到该进程执行完毕才能获取处理机,只有当发生阻塞时才会将处理机分配给其他进程。