这两天翻了翻操作系统,记下几点新认识
1 以数据为核心看计算机结构
cpu:处理数据
内存:缓存数据,便宜cpu存取数据
硬盘(代表I/O):持久化数据(表现数据)
关系:
1. cpu和内存:访问速度快,cpu通过系统总线能直接存取内存中的数据
2. cpu和硬盘:不能直接访问,通过DMA来处理,整个流程如下:
1、cpu发出读取硬盘数据指令,cpu将系统总线控制权限交给DMA控制器;
2、DMA将数据从硬盘读入内存;
3、cpu从DMA接管总线控制权;
4、cpu向内存发出读取数据命令;
5、cpu对数据进行运算处理,同时和内存进行必要的数据交换;
6、运行结束后,如果有外设存取操作,CPU将结果数据发送到硬盘。
2 操作系统中的几个抽象及原因
(这里只写到一些问题,而没有叙述解决方案,question create reality)
进程与线程:进程的产生原因是模拟并控制并发,产生线程的原因是1.系统调用时阻塞线程而不是阻塞整个程序2.并行实体共享同一个地址空间和所有可用数据.换个角度理解,进程用于把资源集中到一起,而线程则是在cpu上被调度执行的实体.
地址空间和虚拟内存:为了运行多个程序,需要把程序先载入到内存,这里存在几个问题:
1.如何让多个程序不访问相同的内存地址?(地址空间)
2.如何让程序独立私有的本地地址重定位到内存地址?(MMU)
3.如何运行内存超载的程序?(交换技术和虚拟地址)
文件:文件的抽象是为了对硬盘信息更好的管理,比如存储和检索信息,只需要把文件看成一种地址空间即可