操作系统和进程简述

本文介绍了冯诺依曼体系结构,包括输入输出设备、CPU的组成及功能。接着,详细阐述了操作系统的角色,如进程管理、内存管理、驱动管理和统计信息。操作系统通过时间片轮转实现多任务并发,区分了并发与并行的概念,并讨论了内核态与用户态以及进程中的上下文切换。最后,概述了进程的三种状态:就绪态、运行态和阻塞态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 冯诺依曼体系结构

大部分计算机都遵守冯诺依曼体系
在这里插入图片描述
我们所认识的计算机, 都是由一个个硬件结构组成的
· 输入设备: 如鼠标、键盘、扫描仪等
· 中央处理器(CPU):包含运算器和控制器等
· 输出设备: 如显示器、打印机等

注意: 某些设备在不同场景中,可能表现为输入设备,也可能表现为输出设备。比如硬盘、VR设备里面的头盔(接受数据展示在我们的视图中, 把我们看向哪个地方当成数据发送到CPU)。输入输出由于视角不同,表现也可能不同。
在这里插入图片描述

关于冯诺依曼

(1)这里的存储器指的是内存。
(2)不考虑缓存的情况,这里的 CPU 只能对内存进行读写,不能访问我外设(输入或输出设备)
(3)外设要输入或者输出数据,也只能写入内存或者从内存中读取

总的来说:所有的设备都只能和内存打交道!!
在这里插入图片描述
关于 CPU(中央处理器)
如果 CPU 是公司
(1)控制器:公司的老板,领导
(2)运算器:公司的员工,干活的人

CPU 执行的指令类型:
(1)逻辑处理:比如程序中的逻辑运算符
(2)计算型:比如程序中的 n++
(3)数据操作: 数据拷贝、IO
在这里插入图片描述

  1. 操作系统

(1)任何一个计算机系统都包含一个基本的程序集合,称为操作系统(OS);操作系统是一款纯正的搞管理的软件。

(2)操作系统的管理范畴
(系统内核)
a. 进程管理: 通过一个 PCB 的结构体来保存进程信息, 包括 PID(进程启动以后系统分配)、进程名称、进程状态等等。
b. 内存管理
c. 驱动管理: 通过驱动程序间接的管理计算机硬件(可以有虚拟的驱动程序)
d. 统计信息: 系统可以统计系统资源信息, 如: 内存、CPU、网络等
在这里插入图片描述
(系统函数库)
系统级别的接口,系统提供出来的一些用户程序可以调用的功能。

(3) 设计操作系统 (OS) 的目的
a. 与硬件交互, 管理所有的软硬件资源(对内且对下)
b. 为应用程序(用户程序)提供一个良好的执行环境(对外且对上)

在这里插入图片描述

用户程序 => 调用系统接口 => 系统接口内部代码的执行 => 调用某个驱动程序来让硬件干活 => 硬件工作

  1. 进程

3.1 初识进程

对操作系统来说,一个任务就是一个进程。

(1) 程序和进程的区别:
程序:静态的可执行的命令。某些文件不属于程序。(静态的)
进程:程序运行以后,有操作系统管理。(运行的)

比如:
xxx.md 用 Typora 程序打开, 相当于是 Topora 程序运行变成 Topora 进程, 进程来处理文件(作为一个参数传入进程的)。Topora 是把文件内容读取渲染出来,并展示给我们看。
再比如:
.java 文件和 .class 文件属于程序吗?
Java 代码编译: javac xxx.java -------- javac 由程序变为进程来执行编译操作, xxx.java 作为参数传入进程中。
Java 代码运行:java xxx ------------ java 作为程序/进程, xxx 作为参数, 进程是查找这个参数的 .class 文件。

(2)程序,内存和进程之间的关系
在这里插入图片描述
当进程已经加载资源到内存中以后, 在不关闭进程的情况下,修改程序,程序不会生效。
例:
在这里插入图片描述
3.2 时间片

操作系统如:Windows,Linux,Mac OS X等, 都是支持 “多任务” 的操作系统,即是操作系统可以同时运行多个任务。
在这里插入图片描述
操作系统的任务调度是采用时间片轮转的抢占式调度方式,即一个任务执行一小段时间后强制暂停去执行下一个任务,每个人物轮流执行。
任务执行的一小段时间叫时间片,任务正在执行的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于他的时间片的到来。
由于 CPU 执行效率特别高,时间片非常短,在各个任务间快速的切换,给人的感觉就是所有的任务都在同时执行,这就是常说的"假同时",也就是并发

3.3 并发与并行

并发:多个进程在一个 CPU 下,在一个时间段内,采用时间片轮转的方式,在不同的进程间切换,叫并发。
并行:多个进程,在多个 CPU 下,在一个时间点上,分别同时运行,叫并行。(可以称为真同时)

例如:
并发: 在单核 CPU 下同时运行微信,IDEA,优快云, 这三个进程在某个时间段内, 是按照时间片轮转的方式不停的切换执行, 这就叫并发式执行。
并行:在多核 CPU 下同时运行微信,IDEA,优快云,在某一个时间点,CPU1 执行 微信的代码指令,CPU2 执行 IDEA 的代码指令, CPU3 执行 优快云 的代码指令,这就叫并行。

3.4 内核态和用户态
在这里插入图片描述
一般的操作系统对执行权限进行了分级: 用户态和内核态
操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态。
用户程序的权限最低,称为用户态。

3.5 进程中的上下文

上下文简单来说就是一个环境,进程在时间片轮转切换的时候,因为每个进程的运行环境都不同,所以就涉及到了转换前后上下文环境的切换。(也就是在一个进程执行的时候,CPU 中所有寄存器中的值、进程中的状态以及堆栈上的内容。)

在进程切换时候,要保存当前进程的所有状态,即保存当前进程的上下文,以便再次执行该进程时,能够恢复切换时候的状态。

在这里插入图片描述
在这个环境中,时间片轮转调度时:
进程1 ====> 进程2: 上文就是进程1的环境信息, 下文就是进程2的环境信息。切换完成后,系统保存上下文的信息。
进程3 ====> 进程1:系统调度回到进程1要恢复之前的上下文信息,使用之前保存的进程1的环境信息,并恢复。

3.6 进程的状态
在这里插入图片描述
就绪态:进程处于可运行的状态,只是 CPU 时间片轮转还没有轮转到该进程。
运行态:进程处于可运行状态, 且 CPU 时间片轮转到该进程,该进程正在执行代码。
阻塞态:进程不具备运行条件,正在等待某个事件的完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值