内存为什么要管理 在OS中,每个运行的进程都会占用内存,那么操作系统势必要做好两件事:内存分配和内存回收。这便是本次实验要做的模拟实验了。 内存分配策略 FF(首次适应算法) 这种策略旨在从最低地址的空闲分区开始找起,找到合适的便进行分配。内存空间按起始地址从大到小排序。 优点:查找速度快 缺点:低地址会留下较多的内存碎片,高地址则会存留大块空闲分区。 BF(最佳适应算法) 这种策略每次分配都将最小块的满足需求空闲分区拿去分配。内存空间按空闲区从小到大排序。 优点:保留大的空闲分区。 缺点:造成很多小的空闲分区。 WF(最差适应算法) 这种策略每次分配都将最大块的满足需求空闲分区拿去分配。内存空间按空闲区从大到小排序。 优点:不会留下许多小的内存碎片。往往可以装入多个大内存程序。 缺点:留下大空闲区的可能减少了。 内存管理实验内容 模拟操作系统,既然是模拟,那么自然比真正的内存分配简单很多。 程序中两个链表: 空闲内存区块表,包含该空闲区的起始地址以及大小。程序初始化链表仅一个节点,大小为默认大小。 一分配内存区块表, 继续阅读 >>


李余通 17/11/10 18:56:25
OS error code 0: Success 操作系统错误代码0:成功 OS error code 1: Operation not permitted 操作系统错误代码1:操作不允许 OS error code 2: No such file or directory 操作系统错误代码2:没有这样的文件或目录 OS error code 3: No such process 操作系统错误代码3:没有这样的过程 OS error code 4: Interrupted system call 操作系统错误代码4:中断的系统调用 OS error code 5: Input/output error 操作系统错误代码5:输入/输出错误 OS error code 6: No such device or address 操作系统错误代码6:没有这样的设备或地址 OS error code 7: Argument list too long 操作系统错误代码7:参数列表太长 OS error code 8: Exec forma 继续阅读 >>


贺含悦 17/08/01 16:26:21
I/O系统 I/O设备 I/O设备的类型 按设备的使用特性分类:存储设备、输入/输出设备 按传输速率分类:低速、中速、高速设备 按信息交换的单位分类:块设备、字符设备 按设备的共享属性分类:独占设备、共享设备、虚拟设备 设备与控制器的接口 数据信号线 控制信号线 状态信号线 设备控制器 设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。它是计算机和设备的接口,接受CPU发来的指令,以使理机中繁杂的设备控制实务中解脱出来。 基本功能 接受和识别命令 数据交换 标识和报告设备的状态 地址识别 数据缓冲 差错控制 设备控制器的组成 设备处理器和处理机的接口 设备控制器与设备的接口 I/O逻辑 I/O通道 I/O通道是一种特殊的处理机,它具有执行I/O的能力,并通过执行通道程序来控制I/O操作。但其指令简单、与CPU共享内存 通道类型 字节多路通道 数组选择通道 数组多路通道 瓶颈问题 通过增加设备到主机间的通路而不增加通道 总线系统 继续阅读 >>


楚东方 17/06/29 23:15:14
操作系统总结 存储器管理 存储器的层次结构 CPU寄存器 寄存器 主存 高速缓存 主存 磁盘缓存 辅存 磁盘 可移动介质 CPU寄存器和主存属于操作系统存储管理,掉电后其信息不再存在 辅存属于设备管理,存储的信息被长期保存 主存储器和寄存器 主存储器 用于保存进程运行时的程序和数据,也称为可执行存储器 寄存器 寄存器的访问速度最快,完全能与CPU协调工作,但价格却十分昂贵。 高速缓存和磁盘缓存 高速缓存 其用量远大于寄存器,而比内存小两到三个数量级,访问速度快于主存储器。存储一些经常访问的信息,减少访问主存储器的次数,可大幅度提高程序的执行速度。 磁盘缓存 磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储器的存储空间扩充。\ 程序的装入与链接 编译->链接->装入 程序的装入 绝对装入 绝对装入程序按照装入模块中的地址,将程序和数据装入内存。装入模块被装入内存后啊,由于程序中的逻辑地址和实际的内存地址完全相同,故不须对程序和数据的地址进行修改。 继续阅读 >>


楚东方 17/06/28 15:36:49
操作系统 处理机调度与死锁 处理机调度 1、高级调度 作业与作业步 作业控制块 作业调度 2、低级调度 低级调度也称为进程调度、短程调度,它所调度的对象为进程 低级调度用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。 功能 保存处理机的现场信息 按某种算法选取进程 把处理机分配给进程 三个基本机制 排队器 分派器 上下文切换机制 进程调度方式 非抢占式 抢占式 1、优先权原则 2、短专业优先原则 3、时间片原则 中级调度 中级调度又称中程调度。引入中级调度的主要目的是为了提高内存的利用率和系统的吞吐量。 其把占时不运行的程序放到外存上,把外存上的程序放入内存,并使其为就绪态。 中级调度实际上就是存储管理器的对换功能。 调度队列模型和调度准则 调度队列模型 仅有进程调度的调度队列模型 具有高级和低级调度的调度队列模型 同时具有三级调度的调度队列模型 选择调度方式和算法的准则 面向用户准则 1、周转时间 继续阅读 >>


楚东方 17/06/26 23:35:53
先来看看c语言printf函数运算顺序为什么从右到左? 从汇编角度来看,函数的参数总是从高地址压到低地址,而访问参数的时候又是通过基址加偏移量来的,所以按照逻辑,偏移量为0对应第一个参数,第一个参数在低地址,低地址最后压入栈,相对应的函数最右边的参数也就最先计算,并先压入栈。 一个由C/C++编译的程序的内存分布分为以下几个部分: 1、 栈(stack):也是我们所说的堆栈,是由编译器自动分配释放,用来存放函数参数值,函数的返回地址,非静态局部变量的值等。其操作方式类似于数据结构中的栈(后进先出LIFO)。 2、 堆(Heep):一般由程序员分配释放,若程序员不释放,程序结束可能由OS回收。 3、 全局区(静态区):全局变量和静态变量存储在这一块,初始化的全局变量和静态变量放在一块区域,未初始化的全局变量,静态变量放在相邻的另一块区域(BSS)。程序结束后由系统释放。 4、 文字常量区:常量字符串放在这个区域。 5、 程序代码区:存放函数体的二进制代码。 Linux下的内存映像布局一般有如下几个段(从低地址到高地址): 1 继续阅读 >>


董恒毅 17/04/20 20:22:35
Linux操作系统概述 操作系统在整个计算机系统所处的位置 操作系统执行C程序的过程 一个简单的C程序在操作系统下运行,操作系统的执行过程是怎样到的? 文件名:test.c #include <stdio.h> main() { printf("Hello world\n"); return 0; } 用户对这个程序编译并链接 gcc test.c -o test 形成一个可执行的二进制文件test,在Linux下执行该程序./test 执行过程如下: 用户告诉操作系统执行test。 操作系统通过文件名在磁盘找到该程序 检查可执行代码首部,找出代码和数据存放的地址 文件系统找到第一个磁盘块 操作系统建立程序的执行环境 操作系统把程序从磁盘装入内存,并跳到程序开始处执行 操作系统检查字符串的位置是否正确 操作系统找到字符串被送往的设备 操作系统将字符串送往输出设备窗口系统确定这是一个合法的操作,然后将字符串转换成像素 窗口系统将像素写入存储映像区 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏 继续阅读 >>


李东林 17/04/04 13:13:38
一:无操作系统 1.手工 特点:(1)用户独占全机(2)CPU等待人工操作 问题:(1)计算机处理能力低(2)计算机工作效率低 2.脱机输入/输出方式 特点:数据的输入输出是在脱离主机的控制下完成的,通常是在外围机的控制下完成的 优点:(1)减少了CPU的空闲时间,缓和了人机矛盾(2)提高了I/O速度 二:单道批处理系统—晶体管 特点:利用磁带将若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序自动依次处理。 批:供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用相同的系统软件。 批作业组成:用户程序、数据、作业说明书(作业控制语言) 特征:(1)自动性—顺利情况下,磁带上的作业能自动地逐个依次进行(2)顺序性—先调入内存地作业先完成(3)单道性—内存中仅有一道程序运行,当该程序完成或发生异常时,才调入其后继程序进入内存执行 三:多道批处理系统 背景:60年代硬件两重大发展:中断技术和通道技术 中断技术 含义:指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。 继续阅读 >>


杜肖孟 17/03/14 23:13:00
    这个星期看了操作系统的引述。这一章主要是从操作系统的定义,特点,种类,组成和历史发展等等大致介绍的操作系统。     先说明操作系统的定义。     明确操作系统是一种软件,负责计算机资源。任何操作系统的核心都是可处理的系统调用集。但是,和我们接触的qq(这种是用户态软件)不同的是它是内核态软件。这两个状态不同的地方是: 1)内核态软件能够有一些特权指令,如hlt,访问程序状态的指令,查看程序状态字的(PSW)。 2)内核态软件和用户态软件对内存的访问不同。内核态软件在内存中占用的地方,用户态程序不可侵犯。      现在说操作系统的特性。       一个是扩展机器,我的理解是操作系统将硬件的借口更加抽象和方便用户态程序的衔接。       二是,资源管理,有序的调用着底层的硬件们。哪个硬件什么时候要做什么工作。     现在说操作系统的种类。     1.大 继续阅读 >>


朱紫钰 16/09/22 21:03:52
操作系统发展史 在当下这个互联网时代,计算机已经成为了人类的生活必需品,而计算机操作系统的发展历史,也就代表着计算机的发展历史,今天,我就向大家分享一下操作系统的发展史。 无操作系统时代 一定很多人非常的惊讶,没有操作系统?简直无法想象,现在只要操作系统稍微复杂一些,我们都感到无法接受,真的是难以想象当时的电脑是怎样去操作的。 人工操作 由于没有操作系统去管理计算机,所以只能通过人手工的去操作、管理整个硬件的运行,要想计算机作计算,只能由专业的程序员去将自己编写的代码及数据转换成二进制码,然后用穿孔的方式,将二进制码录入到纸带上面,然后启动机器,读入程序和数据,计算完毕完毕后,下一个程序继续以此方式继续运行。这种方式真的不可想象,当时编写一个软件是多么的复杂,要多细心才能完成。显然这种方式一台电脑同时只能有一位用户使用,造成了计算机的使用效率低下,很多资源都被白白浪费。 脱机输入输出 脱机输入输出的方式改变了原本人工一条一条纸带装,装完运行结束后,再装下一条纸带,以此循环,脱机方式是有一个外围机来完成装载纸带的工作,操作员只需要开始将 继续阅读 >>


周攀 16/09/18 12:24:46