✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
文章目录
目录
前言
本篇详细介绍了进一步介绍Linux中的进程,让使用者对进程有更加深刻的认知,而不是仅仅停留在表面,更好的模拟,为了更好的使用. 文章可能出现错误,如有请在评论区指正,让我们一起交流,共同进步!
一 冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成
◎ 输入单元:包括键盘, 鼠标,扫描仪, 写板等
◎ 中央处理器(CPU):含有运算器和控制器等
◎ 输出单元:显示器,打印机等
关于冯诺依曼,必须强调几点:
● 这里的存储器指的是内存 不考虑缓存情况,
● 这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
● 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
● 一句话,所有设备都只能直接和内存打交道。
对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?
为什么要有内存呢?提高效率,降低使用成本
二 操作系统(Operator System)
2.1 概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
● 内核(进程管理,内存管理,文件管理,驱动管理)
● 其他程序(例如函数库,shell程序等等)
在后面的描述中,我们认为,操作系统(OS)就单指内核
操作系统基本都是是由C语言构成的,少量汇编语句
OS的本质其实是一种,对软硬件进行管理的软件
2.2 设计OS的目的
2.3 OS如何进行管理
对OS如何进行管理有很多层面的理解,这里我们介绍顶层理解,也方便我们在之后的学习中更容易理解
举个简单的例子
在学校里,校长是我们公认的管理者,我们学生是公认的被管理者,可是我们大多数人却没有见过校长,但是校长依旧可以把我们所有人都管理得很好 ,可见,管理者与被管理者不需要直接接触
但是校长如何管理我们呢,辅导员这时候便登场了, 辅导员接受校长的决策,并对学生执行决策工作,校长通过辅导员了解学生,但校长不会认识每一个学生,那校长如何对学生进行管理呢?我们知道,每个人是不同的,但每个人都有共同的属性(姓名,年龄等等)
校长通过掌握学生的数据,便可以管理学生,我们可得,管理的本质,其实是对数据的管理
如果人一多了怎么办呢
总结:
操作系统也同样如此
整体:
2.4 总结
计算机管理硬件
1. 描述起来,用struct结构体
2. 组织起来,用链表或其他高效的数据结构
系统调用和库函数概念
● 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
● 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统 调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
承上启下
那在还没有学习进程之前,就问大家,操作系统是怎么管理进行进程管理的呢?很简单,先把进程描述起来,再把进程组织起来!
三 进程的标示符
3.1 基本概念
课本概念:程序的一个执行实例,正在执行的程序等
内核观点ÿ