提及计算机,先看以下数学模型:linux
针对计算机来讲,中间一块就是CPU中的运算器,那么咱们的计算机模型应该是这样:windows
因此才说中央处理器CPU、存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。缓存
而后咱们开始演进~~架构
First :spa
一开始只须要CPU和寄存器就能够搞基,各类high;操作系统
但是后来发现寄存器彻底装不下东西,因此咱们搞个内存,能够放各类参数之类的。线程
second:blog
因为寄存器芯片过贵,在考虑成本下咱们的内存都采用的比较慢速的设备。那内存彻底跑不赢CPU啊,CPU老是等啊等,花儿都谢了。继承
因此咱们在CPU和内存之间,采用运算速度较强的内存,即高速缓存。现今计算机架构来讲,基本使用的是三级缓存。进程
Third:
内存过小了啊,彻底装不下这个大千世界了啊。而且严重的是内存通常为电容性器件,关机则消失,好比DRAM。
因此咱们的外存登场,固然如今咱们常常看到的就是磁盘了。
Fouth:
原本相对于CPU,内存就够慢了,天啊,这磁盘什么的简直慢到睡着了。
DMA出马,代替CPU完成读取写入等待等工做,和磁盘交互。
Sixth:
设备好多,无法最开始那样一对一了,因此就来个总线对接下吧。
这么多设备和CPU打交道,信号过来我都不知道谁的,因此加个ID标识吧。
Seventh:
磁盘慢?其实还有不少更慢的I/O等设备。CPU须要和这么多设备打交道,那如何是好,不可能一直等,因此想到了切换,经过中断技术实现。
Eighth:
内存和磁盘直接对接,也出现了速度不匹配的问题,因此缓存再次出现,再次以空间换取时间。
Nigth:
内存虽然够大了,可是不少时候仍是没法放下进程的临时数据啊,对,咱们老是以为电脑或者手机怎么越用越卡,就这出了问题。
可是磁盘很大啊,因此咱们能够考虑先把一半部分数据放入磁盘,window叫虚拟缓存,linux叫交换空间。
但是磁盘的读取速度很慢啊,CPU直接从内存读取多快,哎,这可难办了啊
天啊!就这么简单的介绍,管理起来就够麻烦了。我玩计算器,莫非还要我懂这些才能玩?显然不是,那么就得让人管理啊,所以操做系统出现了。
操做系统做为大管家,管理着时间和空间,带领硬件大小朋友们,和你一块儿走向了人生巅峰!
模式切换
操做系统本质也是一段程序,一样须要在CPU和内存上运行才行。
因此咱们把操做系统在CPU上运行时候,叫内核模式(内核空间);将CPU运行其余程序叫用户模式(用户空间)。
这里咱们将遇到继中断后的第二个切换,咱们将CPU轮换的工做在内核模式和用户模式,叫模式切换。
而且规定只有操做系统才能使用特权命令(四级命令中的0级),使用硬件设备。
若是其余程序须要使用硬件,必须向操做系统申请,即系统调用。
内存也相应的作了照顾,将低位区除了DMA区,专门独享给内存。
备注:CPU资源为时间;内存资源为空间;CPU指令集初始为0~3等级,后面还有-1级。
进程切换
针对每一个程序任务,操做系统给他们统一取了个名叫:进程。
经过windows任务管理器你会看到若干进程在运行,实际上同一时间CPU上只有一个进程在运行,而其余进程都在等待。
运行进程在超过一段时间或者本身退出后,轮换到等待的进程,叫进程切换,这是第三种切换。
就是操做系统会不断切换应用程序来使用CPU。
目的有两个:减小等待时间,好比磁盘读数据这种;
让人感受全部任务是同一时间运行的,好比你在打字和屏幕上显示字,原本属于两个进程来完成,但操做系统不会等你把全部字打完了再显示出来。
线程
线程的特色是继承但不超过父进程的硬件权限,实际就是被阉割了一部分系统调用的权限。但因为共享资源,大大减小了进程(线程)切换的代价,从而提高了速率。
如此尔尔~~~下文分解!