冯诺依曼体系结构
我们所认识的计算机,都是由一个个的硬件组件组成
- 输入单元:包括键盘、鼠标、扫描仪、写板等
- 中央处理器(CPU):含有运算器和控制器等
- 输出单元:显示器、打印机等
所需强调的几点
- 这里的存储器指的是内存
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或输出数据,也只能写入内存或者从内存中读取
- 所有设备都只能直接和内存打交道
操作系统
概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS),笼统理解,操作系统包括
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如函数库,shell程序等等)
设计OS的目的
- 与硬件交互,管理所有的软硬件资源
- 为用户程序(应用程序)提供一个良好的执行环境
定位
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件
总结
计算机管理硬件
- 描述起来,用struct结构体
- 组织起来,用链表或其他高效的数据结构
系统调用和库函数概念
- 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用
- 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发
进程
基本概念
- 课本概念:程序的一个执行实例,正在执行的程序等
- 内核观念:担当分配系统资源(CPU时间,内存)的实体
描述进程-PCB
- 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合
- 课本上称之为PCB,Linux操作系统下的PCB是:task_struct
task_struct内容分类
- 标识符:描述本进程的唯一标识符,用来区别其它进程
- 状态:任务状态,退出代码,退出信号等
- 优先级:相对于其他进程的优先级
- 程序计数器:程序中即将被执行的下一条指令的地址
- 内存指针:包括程序代码和进程相关数据的指针,还有其他进程共享的内存块的指针
- 上下文数据:进程执行时处理器的寄存器中的数据
- I / O状态信息:包括显示的I/O请求,分配给进程的I / O设备和被进程使用的文件列表
- 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等
- 其他信息
<