Linux,操作系统专项练习


操作系统

1. DMA(Direct Memory Access,直接内存存取)

DMA方式主要适用于一些高速的I/O设备。这些设备传输字节或字的速度非常快。对于这类高速I/O设备,如果用输入输出指令或采用中断的方法来传输字节信息,会大量占用CPU的时间,同时也容易造成数据的丢失。而DMA方式能使I/O设备直接和存储器进行成批数据的快速传送
DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

2. 操作系统定义

操作系统( OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。

3. 顺序文件&随机文件

顺序文件和随机文件是说的文件的读取方式,不是说文件的类型。比如按行存入的文本文件可以按行进行顺序文件读写,也可以进行随机文件读写 但是随机文件读写会出问题,你解析出来的字符串是错的。
和顺序存储设备相对的是随机存储设备,顺序存储设备比如说磁带,你只能把前面的存满了再存后面的,而常用的硬盘你可以这个扇区存一点那个扇区存一点,这叫做随机存储设备。
顺序文件也可以存储在随机存储设备上,因为文件系统会屏蔽掉你访问时的差异。

4. 总线带宽&总线位宽

总线带宽:在单位时间内可以传输的数据总量,单位 GB/s。
总线位宽:是指总线能够同时传送的二进制数据的位数。

5. 消息队列

在消息缓冲通信中,消息队列属于临界资源,在消息缓冲区操作的前后,都要执行P、V操作,对该队列进行互斥访问控制。

6. 执行系统调用的过程

1)正在运行的进程先传递系统调用参数,
2)然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,
3)接下来CPU执行相应的内核态服务程序,
4)最后返回用户态。

7. 设备独立性

设备独立性指的是与设备的无关性,I/O软件独立于具体使用的物理设备。
现代操作系统为了提高系统的可适应性和可扩展性,都实现了设备独立性或设备无关性。基本含义是应用程序独立于具体使用的物理设备,应用程序以逻辑设备名请求使用某类设备。实现了设备独立性功能可带来两方面的好处:
(1)设备分配时的灵活性;
(2)易于实现I/O 重定向。为了实现设备的独立性,应引入逻辑设备和物理设备概念。在应用程序中,使用逻辑设备名请求使用某类设备;系统执行时是使用物理设备名。鉴于驱动程序是与硬件或设备紧密相关的软件,必须在驱动程序之上设置一层设备独立性软件,执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一张逻辑设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性。

8. 管程(Monitor)

管程(monitor)只是保证了同一时刻只有一个进程在管程内活动,即管程内定义的操作在同一时刻只被一个进程调用(由编译器实现).
引入管程是为了让系统自动处理临界资源的互斥使用问题。
临界资源:一次仅允许一个进程使用的资源。

9. Windows 7

Win7:是一个批处理多用户操作系统。
如UNIX、Linux操作系统属多用户多任务操作系统,早期的Windows系列均是单用户操作系统,单用户单任务操作系统。
目前使用最广泛的的win7是多用户操作系统,Windows Server 2003 和Windows Server 2008是多任务多用户操作系统。

10. 文件系统

文件系统中,用于文件的描述和控制并与文件一一对应的是文件控制块。文件存储空间的管理就是块空间的管理,包括空闲块的分配、回收和组织等几个问题。

11. 死锁的预防(deadlock prevention)

死锁产生时,产生死锁的四个必要条件必定同时保持,如果至少能使其中一个条件不满足,那么死锁将是不可能产生的了。四个必要条件如下:
1)破坏互斥条件。
2)破坏保持和请求条件:进程在开始运行前,必须获得所需的全部资源。若系统不能满足,则该进程等待,这就是资源的静态分配。这种分配方式使资源利用率很低。而且,许多程序在开始运行之前,不能精确提出所需资源数量。
3)破坏非剥夺条件。
4)破话循环等待条件。

12. 动态重定位分区分配算法

动态重定位分区分配算法与动态分区分配算法基本上相同,差别仅在于:在这种分配算法中,添加了紧凑功能 。

13. 局部性原理

局部性原理是虚拟存储器使用的基本理论,正因为程序运行具有局部性规律,才可以只装入部分程序到内存就开始运行。
在这里插入图片描述


Linux

1. bash

创建变量

bash中有两个内置的命令declare 和 typeset 可用于创建变量。

赋值

除了使用内置命令来创建和设置变量外,还可以直接赋值,格式为:变量名=变量值
注意:变量名前面不应加美元“$”符号。等号“=”前后不可以有空格。
Shell中不需要显式的语法来声明变量。
变量名不可以直接和其他字符相连,如果想相连,必须用括号: echo “this is $(he)llo!”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值