一,冯诺依曼体系
在我们日常生活中,大多硬件都用到了它,如计算机,手机,服务器等。
知识点:存储器:指的是内存
局部性原理:在处理器和内存之间提供一个容量小且虚度快的存储器(位于被访问字附近的数据在近期被访问的概率大)
直接存储:简称DMA模块,CPU把所需要的东西都交给它,当它传完后通知CPU即可。
数据先从输入设备进来,加载到内存,内存通过CPU(运算器,控制器,pc等寄存器)得以运行,同样CPU想要输出,也必须经过内存
总结:一切设备只能和内存打交道,因为CPU的速度太快,只有内存利用局部性原理(L1,L2,L3)才能跟的上CPU的速度。
例子:登录QQ和朋友聊天,他发的消息,你收到以后,数据流动过程?
首先,他在输入设备(显示器)写入信息,他的数据会通过直接存储技术写入硬盘,硬盘加载到内存,内存交给CPU处理,然后输出设备通过内存接收到信息,通过网络发给你,你经过相反的步骤得到信息。
二,操作系统
1.它是控制应用程序的执行的程序,是应用程序的和计算机硬件键的接口。它分为内核和其他程序(SHELL,函数库)。
总的来说它是一款搞管理的软件,目的:与硬件交互,管理所有的硬件资源,为用户程序提供一个良好的执行环境。
2.操作系统如何管理的?
第一先描述:它是由c语言构成的结构体
第二组织:通过链表或者其他更高效的组织方式,把它组织起来
可以用一张图来描述它如何管理的
三,进程
进程是一个对处理器,主存,i/o设备的一个抽象描述,它可以认为是一个正在执行的程序,具体描述为:一段可执行的程序+
程序所需要的相关数据(变量,工作空间,缓冲区等)+程序的上下文。也可总结为:程序的代码,数据+描述程序的结构体(PCB)
Linux下的PCB叫做task_struct
它的内容如下:
标识符:进程pid,用来区别其他进程的
优先级:谁能更先得到调度(也就是先到cpu里运行),权限是不能判断谁先谁后的
pc(程序计数器):保存CPU即将执行的下一条指令
内存指针:指向程序代码和进程相关数据的指针
上下文数据:进程执行时处理器的寄存器的数据
i/o信息:包括显示的i/0设备请求等
记账信息:包括处理器的时间总和,时间限制等
最重要的一个是进程状态:R状态:表明他正在运行的队列中等待,并不表示它在运行。
S:睡眠状态:意味着进程在等待事件的完成,它是可以被杀死的。
D:磁盘休眠状态:进程等待i/o设备的结束,是不能被杀死的
T:停止状态:通过发送SICSTOP信号停止信号,发送SICSTOP信号让进程继续
X:死亡状态:任务列表里不会看到这个状态
Z::僵尸状态:子进程退出,但是父进程没有回收它,等待父进程读取退出状态代码(PCB没有被释放)如果不回收的话,就会造成内存泄漏
孤儿进程:父进程退出,子进程为退出,被1号进程领养。