嵌入式学习 Linux进程控制理论篇

嵌入式学习 Linux进程控制

进程定义: 一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位(说的很有道理,其实我个人对此理解还是很有限的)
进程的特点:

进程的特点

  • 动态性(可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实)
  • 并发性 (进程之间是可以在同一时间段,同时执行)
  • 独立性 (进程的运行环境是独立互相不干扰的,例如进程之间内存地址空间是独立的)
  • 异步性 (异步性是指进程以不可预知的速度向前推进。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。是程序并发执行时,程序之间的相互制约关系导致了并发程序这种“执行——暂停——执行”这种间断性的活动规律。比如,当正在执行的进程提出某种资源请求时,如打印请求,而此时打印机正在为其他某进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续执行。可见,由于资源等因素的限制,进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。)

进程三态

  1. 就绪
  2. 组赛
  3. 执行
    这里写图片描述

进程ID

进程ID(PID)
父进程ID(PPID)
启动进程的用户ID(UID)

进程互斥

若干进程ABC都要使用某一共享资源,例如打印机,但是任何时刻最多只能一个进程使用。这表示当A进程使用资源打印机时,BC进程必须等待,知道A释放了打印机资源。BC同理。类似这种情况叫进程互斥。

临界区与临界资源

操作系统中一次只允许一个进程访问的资源称为临界资源。
进程中访问临界资源的那段代码称为临界区。为了实现临界资源的互斥访问,应保证进程间互斥地进入各自的临界区。

进程同步

进程同步定义:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。
一组并发的进程按照一定顺序执行的过程。例如:生产者进程P进程,和消费者进程Q进程,这两个进程时并发的同时运行,生产者不断生产,消费者不断消费。但是,总是生产者先生产出来产品,消费者才能够消费,否则只能等待。

进程的调度

操作系统同一时间处于就绪态的进程可能有很多,因此因该按某种算法,合理的挑选就绪进程执行。

调度方式:

  • 抢占式调度,现行进程在运行过程中,如果有重要或紧迫的进程到达(其状态必须为就绪),则现运行进程将被迫放弃处理机,系统将处理机立刻分配给新到达的进程。
  • 非抢占式调度

调度算法

  1. 先来先服务
  2. 短进程优先
  3. 高优先级优先
  4. 时间片

进程死锁

多个进程因竞争资源而形成一种僵局,若无外力作用这些进程都将永远不能在向前推进。

猜你喜欢

转载自blog.csdn.net/qonsnow/article/details/81211695