- 博客(16)
- 收藏
- 关注
原创 操作系统--I/O系统
I/O硬件总线PCI总线北桥连接高速硬件,例如内存和显卡;南桥连接低速硬件,例如磁盘。设备类型计算机中的IO系统外围设备并没有和PCI总线直接相连,而是经过了一层适配器或者控制器。真正控制外围设备的是这些适配器或者控制器,而不是CPU。控制器IO地址I/O控制方式轮询中断缺点:CPU仍然需要等待DMA直接内存访问CPU只管发出命令,然后就接着做别的事去了。其他事情交给DMA控制器来做。我们可以看到CPU和DMA控制器使用的是同一个CPU/内存总线,当DMA占用该
2020-12-16 14:01:22 229
原创 操作系统--文件目录系统的实现
文件系统的实现文件系统要实现什么?1.文件目录2.空间分配方法3.空闲空间管理文件目录文件控制块UFS文件系统INODES这个inode和之前的FCB相比,少了一个文件名,是因为文件名被单独拿出来了。一个UFS实体包含文件名和inode编号。INODES区分配方法(和内存分配方法类比)连续分配优点1.简单,逻辑地址块到物理地址块的转换很快。缺点1.会产生外部碎片2.文件的增加和修改不方便,可能会遇到后面地址块不够的情况。链接分配优点1.不需要连续存放
2020-12-15 22:13:17 1477
原创 操作系统--文件系统
文件系统文件系统文件系统提供了对计算机系统中的操作系统和所有用户的数据和程序的在线存储和访问机制。文件系统存在于设备上,比如磁盘和固态硬盘。文件系统包含了两个部分:一个是文件的集合,存储相关的数据;一个是目录结构,用来组织和提供所有文件的信息。文件概念文件定义文件是信息的逻辑存储单位。在用户看来,文件是具有结构的信息集合。在系统看来,文件的本质是存储在外存中的二进制集合。文件可以存储不同类型的信息,如文本信息,可执行文件,doc文档文件,xls表格文件。文件属性文件类型操作系统
2020-12-15 20:01:37 855 1
原创 操作系统--磁盘
磁盘结构磁盘结构磁盘格式化磁盘性能磁盘性能指标磁盘调度磁盘I/O请求每当一个进程需要进行I/O操作时,都会需要进行操作系统提供的系统调用。这个I/O请求包含如下信息:1.这个操作是输入还是输出。2.磁盘的地址(柱面号,磁头号,扇区号)。3.内存的地址。无论是输入还是输出,都是和内存有关的。4.扇区数量。磁盘调度对于多道程序系统,当有很多进程想要进行I/O请求时,会有一个专门的队列用来存放这些请求。当一个请求完毕,操作系统会从队列中选择下一个请求进行服务。调度策略FC
2020-12-15 14:53:32 244
原创 操作系统--虚拟内存
局部性原理缓存CACHECPU在访问数据时,一般会先去缓存中找。如果缓存中没有才会去内存中找。在缓存中,数据时一行一行保存的(CacheLine),并且每行大小是相等的。假如说缓存一行大小是64字节,如果CPU要访问的数据只有8个字节,那么缓存一样会存储64个字节的内容,也就是将要访问的8个字节的内容的后面56个字节一并存储进来。下面有两段代码:蓝颜色是按行读取数组的内容,绿颜色是按列读取数组的内容。很明显,根据数组的特性和缓存的特性,蓝颜色的代码读取效率会更高。哪些数据应放在缓存?局部性原
2020-12-14 22:33:57 112
原创 操作系统--页表
页表页表操作系统会为每一个进程维护一个页表的拷贝,这个拷贝是用来将逻辑地址转换成物理地址的。当一个进程被分配CPU时,CPU调度程序会使用页表来定义一个硬件页表。硬件页表页表是存放在内存中的,CPU有一个寄存器用来指向页表在内存中的起始地址。在上下文切换时,切换页表只需要修改寄存器中的值即可。页面大小在64位系统中,页面大小为4K Bytes,即2的12次方,所以页内位移需要12位表示。那么页号也就是64-12=52位,但实际上只用到52位中的36位。快表TLBTLB是一种很小但查找速度
2020-12-14 19:34:56 5896 2
原创 操作系统--分段和分页
动机解决碎片化:允许进程使用不连续的逻辑地址。对于内存的想法差异:在程序员眼中:内存是一段一段的,比如说一个函数就是一段内存实际物理内存:内存是一个线性的字节数组硬件应该提供一种机制将不连续的逻辑地址转换到物理地址中。分段程序员眼中的内存世界划分段分段硬件例题分段其实和之前的可变分区方法很像,但还是会存在内存碎片。分页将物理内存分成大小相等的一个个页框,将程序分成很多页,然后将一页一页的程序放进页框中。页号和页内位移页式存储在计算物理地址时是十分快捷的,只需要
2020-12-14 14:58:20 339 1
原创 操作系统--内存管理
内存管理目标内存概念内存是现代计算机系统的主要硬件,它是由一个庞大的字节序列组成的,每一个字节都有它的地址。CPU通过程序计数器来从内存中获取下一条指令的内存地址。一个典型的指令执行周期包括:首先,从内存中取出一条指令;然后这条指令将被译码,并且有可能会从内存中获取一些操作数;将指令执行完后,可能会把计算结果再放到内存中。内存管理目标高速缓存由于CPU和内存的速度差异,假如CPU每次都要从内存中读取数据,这样会导致时间上的浪费。可以在CPU和内存之间加入一个缓存,来提供CPU对内存的相对访问
2020-12-14 11:34:18 131
原创 操作系统--死锁
死锁死锁的定义在并发环境下,一些进程去竞争有限的资源。当竞争的资源不可用时,进程就会进入等待状态。如果进入等待状态的进程需要的资源被另一个进入等待状态的进程所占有,那么就会产生死锁。死锁问题哲学家就餐问题死锁与饥饿产生死锁的四个必要条件解决死锁的方案死锁的防止破坏四个必要条件之一死锁的避免(使用安全算法)允许四个必要条件同时存在,在并发进程中做出妥善处理避免死锁的产生死锁的检测和恢复允许死锁的产生,系统及时地检测死锁并排除它死锁预防 ----- 确保系统永远不会进入
2020-12-13 22:48:57 621
原创 操作系统--Semaphore
信号量信号量的定义信号量是一种比互斥锁更加强大的同步工具,它可以提供更高级的方法来同步并发进程。一个信号量其实就是一个整数,除了初始化之外,它只能被两个标准的原子操作来访问:P和V。P:wait() 在荷兰语中是测试的意思。V:signal() 在荷兰语是自增的意思。信号量的实现while循环其实就是一种测试,在测试信号量的值是不是大于0!可以看出,互斥锁其实就是信号量的一种特例,当信号量初始值为1时,那么就是互斥锁的效果。信号量的使用BINARY SEMAPHORE(二值信
2020-12-13 20:48:37 1794
原创 操作系统--Mutex Locks
同步工具竞争关系–>互斥锁协作关系–>信号量临界区问题临界区管理准则1.互斥2.前进(有空让进)3.有限等待互斥锁由于使用软件来解决临界区十分麻烦,因此操作系统提供了同步工具—互斥锁操作系统的设计人员设计了一些用来解决临界区问题的软件工具,其中最简单的就是互斥锁。一个进程/线程在进入临界区前必须获得锁,在离开时必须释放锁。Java中重量级锁synchronized使用的就是Mutex锁锁的基本操作上锁的操作是不能被打断的,因此需要操作系统提供原子操作。
2020-12-13 17:25:36 541
原创 操作系统--同步与异步
并发进程和线程并发并发进程之间的关系竞争协作略异步竞争条件临界区同步同步是一种用来维持在协作进程/线程中共享数据的一致性的机制。
2020-12-13 14:00:13 197
原创 操作系统--CPU调度
CPU调度程序为了实现多道程序设计,引出了CPU调度的机制。当CPU空闲时,操作系统必须从就绪队列中挑选一个进程来执行。计算机中进程的时间消耗抢占调度非抢占调度一旦某个进程得到了CPU,就会一直占用到终止或等待状态(主动),即使有更高优先级的进程,也不会放弃CPU。抢占调度CPU调度准则CPU调度是靠CPU的调度程序来完成的,那么如何衡量它的好坏呢?调度性能指标调度算法调度算法其实就是一种策略先来先服务(FCFS)非抢占式调度算法早期系统里,FCFS意味着一个程
2020-12-13 13:05:53 519
原创 操作系统--线程
线程的定义线程产生的动机一个应用程序通常需要同时处理很多工作,比如一个Web浏览器,可能需要同时处理文字和图片,这些同时执行的任务可称为“执行流”,但我们不希望他们按顺序执行。因为如果是顺序执行的话,先加载所有文字再加载图片,用户的体验会非常不好。而且在早期,每处理一个工作都是创建一个子进程,进程的切换是很浪费时间和资源的,CPU利用率不高。如果把一个应用的所有执行任务封装在一个进程内,这些任务就是一个个的线程。线程的定义1.线程是CPU调度的基本单元,它包含了线程id,程序计数器,一系列寄存器
2020-12-12 22:39:30 81
原创 操作系统--进程
进程进程的定义进程是一个程序的一次执行过程能完成具体功能 是在某个数据集合上完成的 执行过程是可并发的进程是资源分配,保护和调度的基本单位程序和进程之间的关系:1.一个程序是一个被动的实体,就像一个包含了一系列指令的文件,经常被称为可执行文件。当一个程序被加载进内存时,它就变成了一个进程,然后CPU不断地取指执行。2.一个进程是一个活跃的实体,它包含一个程序计数器。程序计数器是一个CPU中的寄存器(寄存器是整个存储体系中最顶层的,速度最快),里面存储下一条要执行的指令的内存地址。通常C
2020-12-12 21:01:10 207
原创 操作系统介绍
操作系统1.概念:操作系统是用户和计算机硬件的中间人。操作系统的目的是为程序的执行提供一个方便高效的环境。操作系统是一个管理计算机硬件的软件。2.操作系统结构的演变单用户单道模式多道程序设计分时系统以前的分时系统是多个用户共享一台计算机,现在的分时系统是多个应用程序共享CPU。3.操作系统提供哪些服务?针对用户,操作系统提供的是(user interfaces):1.GUI(图形用户界面)2.批处理,即一个文件里包含多条命令,执行这个文件就会执行多条命
2020-12-12 17:04:09 159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人