4.操作系统的进程详解

早期的计算机一次只能运行一个程序,这种程序完全控制操作系统,并且访问操作系统所有硬件资源。相比之下,现代计算机允许加载多个程序到内存,以便并发执行,这种改进要求:对各种程序提供更严的控制和更好的划分。这种需求导致了进程(process)概念的产生,即进程为执行程序。

进程是现代操作系统的工作单元,进程需要一定的资源,如CPU时间、内存空间、文件存储空间、I/O设备等,以便执行任务。

操作系统会由一组进程组成:操作系统进程执行系统代码,而用户进程执行用户代码。通过CPU的多路复用,所有这些进程可以并发运行。

进程状态

4.操作系统的进程详解

新的:进程正在创建。

就绪:进程正在分配处理器。

运行:处理器正在执行指令。

终止:进程正在完成执行。

等待:进程正在等待发生某个事件(如I/O完成或收到信号)。

CPU密集型和I/O密集型

进程可分为CPU密集型进程和I/O密集型进程。CPU密集型进程很少产生I/O请求,而是将更多时间用在执行计算。I/O密集型进程执行I/O比执行计算需要花费更多时间。

操作系统主要分为 I/O等待队列就绪队列

如果所有进程都是 CPU密集型的,那么 I/O等待队列几乎为空。如果所有进程都是I/O密集型的,那么就绪队列几乎总是为空。为了使得性能最佳,系统需要 CPU密集型 和 I/O 密集型的进程组合。

进程的创建fork()、执行exec()、退出exit()、等待wait()

进程包括进程名称和唯一的进程标识符(process identifier,pid),pid是整数值。

父进程创建子进程,从而形成进程树(process tree)。

init作为所有进程的父进程或根进程,kthreadd和sshd作为init的两个子进程。

当一个进程创建子进程的时候,子进程需要一定的资源(CPU时间、内存空间、文件存储空间、I/O设备),子进程可以从操作系统那么直接获得资源,也可以只从父进程那里获得资源子集。

4.操作系统的进程详解
4.操作系统的进程详解

进程间通信

进程间通信可以通过调用原语 send()receive() 来进行。实现这些原语有不同的设计方案。消息传递可以是 阻塞(blocking)非阻塞(nonblocking),也称为 同步(synchronous)异步(asynchronous)

  • 阻塞发送(blocking send):发送进程阻塞,直到消息由接收进程或邮箱所接收。
  • 非阻塞发送(nonblocking send) :发送进程发送消息,并且恢复操作。
  • 阻塞接收(blocking receive) :接收进程阻塞,直到有消息可用。
  • 非阻塞接收(nonblocking receive) :接收进程收到一个有效消息或空消息。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/linux/os/10091.html

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2022年1月3日
下一篇 2022年1月5日

相关推荐

  • 2.计算机硬件的组成部分

    计算机硬件由一个或多个CPU和若干I/O设备,通过公共总线连接而成。 I/O设备由设备控制器和设备本身组成。 每个设备控制器负责一类特定的设备(如 磁盘、鼠标、键盘、打印机、显示器),设备控制器用来协调访问设备。 1.中央处理单元 中央处理单元(Central Processing Unit,简称CPU),又称为中央处…

    操作系统教程 2022年1月2日
    06020
  • 5.操作系统的多核多线程、并发、并行详解

    迄今为止所讨论的进程模型暗示:每个进程是一个只能进行运行单个 线程(thread)的程序。例如,如果一个进程运行一个字处理程序,那么只能执行单个指令线程。这种单一控制线程使得进程一次只能执行一个任务。例如,用户不能在同一进程内,同时输入字符和拼写检查。现代许多操作系统扩展了进程的概念,以便支持一次能够执行多个线程。 多…

    操作系统教程 2022年1月5日
    01.1K0
  • 1.计算机生态的组成部分

    计算机生态可分为:硬件、操作系统、应用程序、用户。

    操作系统教程 2022年1月1日
    05260

发表回复

登录后才能评论