操作系统
Shijia Yin
这个作者很懒,什么都没留下…
展开
-
【现代操作系统】之进程模型
在开始一切之前我们首先要知道什么是进程一台电脑一般会“同时”运行很多程序,这些程序也包括操作系统自身,但是CPU只有一个(先不考虑多核情况),那么如何同时运行这些程序呢,其实这是不可能的,在某一时刻只能有一个程序在CPU上运行,那么如何实现我们想要的“同时”呢?答案是:分时复用,由于CPU的运行速度很快,我们可以让它在多个程序之间快速地切换,这样就会给人造成一种假象,仿佛这些程序是同时运行的,也...原创 2019-03-04 20:03:16 · 513 阅读 · 0 评论 -
【现代操作系统】之进程间通信
什么是进程间通信进程间通信就是进程间的信息传递,简单的说,有三个主要问题,第一,一个进程如何把信息传递给另一个进程,第二,两个或更多进程的活动不会出现交叉。第三,进程要按顺序来通信。竞争条件两个进程同时竞争使用一块存储区,这样会造成一些问题,比如有两个进程同时想向一块存储区中写数据,那么前一个写的数据可能就会被后一个进程写的数据所覆盖,这样就会造成第一个程序的异常运行,这就需要竞争条件来约束...原创 2019-03-11 18:33:03 · 285 阅读 · 0 评论 -
【现代操作系统】之调度
什么是调度在多道程序设计中,当多个进程或线程同时想要使用同一个CPU,就会出现竞争现象。这时候就需要一个程序来协调它们以确定谁可以获得CPU的使用权,这个程序就是调度程序,调度程序使用的算法就是调度算法。调度概述早期的批处理系统时代,CPU是稀缺资源,我们时常需要同时处理多个批处理任务或者与用户交互的任务,一个好的调度程序在提高性能和用户满意度方面是至关重要的,因此,人们花费了大量的时间在创...原创 2019-03-11 18:32:45 · 392 阅读 · 0 评论 -
【现代操作系统】之线程模型
什么是线程模型有了进程模型,我们就不用考虑中断,定时器和上下文切换(进程调度的底层实现),只需要考察并行进程,类似的,有了线程模型之后我们就有了这样一个元素:并行实体共享同一个地址空间和所有可用数据的能力。进程模型中的各个程序是独立工作的,而线程模型中的程序是工作于同一个地址空间并共享这个地址空间的数据。从这种工作理念上的不同我们可以感受到,进程模型是为了各个程序之间独立完成各自的工作,而线程模...原创 2019-03-04 20:03:07 · 297 阅读 · 0 评论 -
【现代操作系统】之虚拟内存
什么是虚拟内存由于软件所需内存容量的增长速度比内存容量的增长速度还要快,因此内存容量已经难以满足软件的需求,更何况很多时候我们用的不是一个软件,如果使用交换的方法,那么在一些大型程序中,将程序交换出去再交换进来所花费的时间将是相当恐怖的。因此前人发明了一种方法叫做虚拟内存,它的工作机制是:每个程序拥有自己的地址空间,这个空间被分割成多块,每一块被称作一页或页面,每一页都有连续的地址空间,这些页...原创 2019-03-11 18:32:17 · 402 阅读 · 0 评论 -
【现代操作系统】之I/O软件原理
I/O软件管理的目标第一个目标是设备独立性,我们应该编写这样的设备:它能够访问任意I/O设备而无需事先指定设备。也就是说,U盘,磁盘,CD在我们眼里都是文件,至于如何区分这些文件,这是操作系统要考虑的。第二个目标是错误处理,一般来说,错误应该尽可能地在硬件层面得到处理,或者是在驱动层面得到处理,上层软件很少关心这些事情。程序控制I/OI/O可以以三种根本不同的方式实现:程序控制I/O,中断...原创 2019-03-27 13:11:05 · 410 阅读 · 0 评论 -
【现代操作系统】之I/O硬件原理
什么是I/O硬件原理不同人对I/O的理解是不同的,对于电子工程师而言,I/O硬件就是芯片,导线,电源,电机和其它组成硬件的物理部件。对程序员而言,I/O是一种软件接口,他们关心的是硬件可以接受的命令和怎样向硬件发出命令,以及硬件返回的信息和完成的功能。I/O设备I/O设备大致可分为两类:块设备和字符设备。块设备:信息被存储在固定大小的块中,每个块都有自己的地址,数据传输以块为单位。硬盘、C...原创 2019-03-26 18:06:19 · 806 阅读 · 0 评论 -
【现代操作系统】之目录
什么是目录文件系统中用于记录文件信息的一种特殊文件。一级目录系统在这种结构中,一个目录包含所有文件,这个目录成为根目录,如下图。在早期的计算机中,这种设计很普遍,部分原因是因为只有一个用户,这种目录还常用于简单的嵌入式装置。...原创 2019-03-15 15:41:55 · 658 阅读 · 0 评论 -
【现代操作系统】之文件系统的实现
什么是文件系统的实现上一节中,我们从用户角度观察了文件系统,这一节中我们要从实现者的角度考虑问题。用户关心文件是怎样命名的,可以进行什么操作、目录树是什么样的以及类似的界面的问题。而实现者感兴趣的是文件和目录是怎样存储的、磁盘空间是怎样管理的以及怎样使系统有效而可靠地工作等问题。文件系统布局...原创 2019-03-19 22:16:03 · 225 阅读 · 0 评论 -
【现代操作系统】之文件
什么是文件原创 2019-03-15 12:49:40 · 234 阅读 · 0 评论 -
【现代操作系统】之分页系统中的设计问题
机制与策略原创 2019-03-13 14:40:21 · 334 阅读 · 0 评论 -
【现代操作系统】之地址空间
什么是无存储器抽象原创 2019-03-11 18:32:37 · 563 阅读 · 0 评论 -
【现代操作系统】之页面置换算法
什么是页面置换算法当发生缺页中断时,操作系统必须选择一块页面将其换出内存,以便为即将调入的页面腾出空间。页面置换算法就是用来高效地进行这种页面置换操作的算法。最优页面置换算法在发生缺页中断时,内存中的有些页面将很快被访问,而有些页面则会在很久后才被访问,我们只要定量地知道这些页面什么时候会被访问,然后选择其中最晚被访问的并将它换出内存就可以实现最优页面置换算法,但是这种方法是无法实现的。因为...原创 2019-03-11 18:32:28 · 370 阅读 · 0 评论 -
操作系统常见面试题
请分别简单说一说进程和线程以及它们的区别进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的独立运行的基本单位,一个进程可以有多个线程,多个线程也可以并发执行线程同步的方式有哪些互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个...原创 2019-09-17 14:18:53 · 98 阅读 · 0 评论