程序运行(1)----OS与进程

  导入

(冯诺依曼结构)

冯诺依曼结构是我们大部分计算机都遵守的结构体系,我们所认识的计算机都有一个个硬件组成:

. 输入单元:键盘,鼠标,扫描仪等

. 中央处理器(CPU):含有运算器和控制器

. 输出单元:显示器,打印机等

注:这里的存储器指的是内存

不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)

外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

一句话,所有设备都只能直接和内存打交道。

 基于冯诺依曼这一基本结构,让我们详细了解计算机在处理数据和返回数据的具体过程吧!

1.操作系统(0S)

总:OS本质上是一种进行软硬件资源管理的计算机软件

宏观来说OS包括两大部分:

(1)内核:用于进程/线程管理,文件系统,内存管理,驱动管理;

(2)其他程序:shell,glibc,原生函数库等

下图是程序在用户与底层间运行的模块图,该图具象化了用户与底层间的联系:

目的:

从该图我们可以看出OS处于一个承上启下的位置,所以设计OS的目的是:

(1)OS对下进行资源管理,使其稳定,高效,安全的工作;

(2)OS对上给用户提供稳定,高效的运行环境

系统调用和库函数概念

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分 由操作系统提供的接口,叫做系统调用。

系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统 调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

注:向上提供的接口只能是C语言的接口,所有软件的底层都必须和C直接或间接有关

下来我们针对OS的进程管理做展开:

计算机是如何进行进程管理的呢?

1. 描述起来,用struct结构体

2. 组织起来,用链表或其他高效的数据结构

让我们通过下面讲述再次理解“先描述在组织”这一管理的本质与方法

2.进程

总:进程 = 内核数据结构(结构体task_struct) + 程序代码数据

内核:(担当分配系统资源(CPU时间,内存)的实体)
概念:一般而言正在执行的程序我们称为进程
图示文件的运行:

解释:

描述进程:

(1)进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。

(2)课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct

 task_struct-PCB的一种

(1)在Linux中描述进程的结构体叫做task_struct。

(2)task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值