2019-2020-1学期 20192415
《网络空间安全专业导论》第五周学习总结
第十章 操作系统
10.1 操作系统的角色
软件:
1.应用软件(applacaation software):帮助我们解决现实世界问题的程序。
为满足特定需求而编写的。
2.系统软件(system software):管理计算机系统并与硬件进行交互的程序。
在基础层上管理计算机系统,为创建和运行应用软件提供工具和环境。
通常直接与硬件交互,提供的功能比硬件自身提供的多。
- ★★★计算机的操作系统是系统软件的核心。
- 其他系统软件支持特定目的。
操作系统(operatingsystem):管理计算机资源并为系统交互提供界面的系统软件。
①操作系统负责管理硬件资源,允许应用软件直接地或通过其他系统软件访问系统资源。
资源由使用的程序共享。多个并发执行的程序将共享主存,依次使用CPU,竞争使用输入/输出设备的机会。
操作系统将担任现场监控,确保每个程序都能够得到执行的机会。
②操作系统提供直接的人机交互页面。
一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。
计算机可以拥有两个及以上个操作系统(双引导或多引导系统),但任何时候都只有一个操作系统在控制计算机。
10.1.1 内存、进程和CPU管理
正在执行的程序都驻留在主存中,其中的指令以读取——解码——执行这种周期性方式被一个接一个地处理。
操作系统自身也是必须执行的程序。执行OS的CPU就是执行其他程序的CPU,因此也要把OS排进竞争CPU的队列中。
多道程序设计(multiprogramming): 同时在主存中驻留多个程序,由它们竞争CPU的技术。
所有现代操作系统都采用多道程序设计技术。
进程(process): 程序执行过程中的动态表示法。
程序只是一套静态指令,进程则是动态的实体,表示正在执行的程序。
内存管理(memory management):了解主存中载有多少个程序以及它们的位置的动作。
进程管理( process management):了解活动进程的信息的动作。
内存管理和进程管理都需要CPU调度。
CPU调度(CPU scheduling):确定主存中的哪个进程可以访问CPU以便执行的动作。
10.1.2 批处理
作业:程序和系统指令(为执行程序所需的系统软件或其他资源所单独提供的)集合在一起。
一个分批包含一组需要相同或相似资源的作业;当一个分批中的作业被载入内存中时,它们将竞争CPU和其他共享资源的使用权。
10.1.3 分时
分时(timesharing):多个交互用户同时共享CPU时间的系统。
虚拟机(virtual machine):分时系统创建的每个用户都有专有机器的假象。
主机(mainframe):一个大型的多用户计算机,通常与早期的分时系统相关。
哑终端(dumb terminal):在早期的分时系统中用户用于访问主机的一套显示器和键盘。
CPU时间由所有用户创建的所有进程共享。每个进程顺次得到一小段CPU时间。→CPU要足够快
许多台式计算机运行的操作系统都以分时的方式支持多个用户。其他用户可以用其他计算机通过网络连接到这台计算机上。
10.1.4 其他OS要素
- OS必须考虑计算机通常要连接到网络
- OS要负责与各种各样的设备通信
OS需要支持实时系统
实时系统(real-time system):应用程序的特性决定了响应时间至关重要的系统。
响应时间(response time):收到信号和生成响应之间的延迟时间。
10.2 内存管理
逻辑地址(logical address):对一个储存值的引用,是相对于引用它的程序的。
物理地址(physical address):主存设备中的真实地址。
把逻辑地址联编到物理地址的时间越迟,得到的灵活度越大。
地址联编(address binding):逻辑地址和物理地址之间的映射。
采用十进制进行地址联编计算。
多种内存管理策略:
单块内存管理
单块内存管理(single contiguous memory management):把应用程序载入一段连续的内存区域的内存管理方法
物理地址=起始地址+逻辑地址
优点:实现与管理简单
缺点:大大浪费内存空间和CPU时间
分区内存管理
固定分区法(fixed-partition technique):把内存分成特定数目的分区以载入程序的内存管理方法
动态分区法(dynamic-partition technique):根据容纳程序的需要对内存分区的内存管理方法
基址寄存器(base register):存放当前分区的起始地址的寄存器 界限寄存器(bounds register):存放当前分区长度的寄存器
页式内存管理
页式内存管理法( paged memory technique):把进程划分为大小固定的页,载人内存时存储在帧中的内存管理方法。
帧(frame):大小固定的一部分主存, 用于存放进程页。
页(page):大小固定的一部分进程 ,存储在内存帧中。
页映射表(Page Map Table, PMT): 操作系统用于记录页和帧之间的关系的表。
两种无效逻辑地址:①越过进程界限②偏移量大于帧大小
请求分页( demand paging):页式内存管理法的扩展,只有当页面被引用(请求)时才会被载人内存。
页面交换(page swap):把一个页面从二级存储设备载人内存,通常会使另一个页面从内存中删除。
虚拟内存(virtualmemory):由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。
系统颠簸(thrashing): 频繁的页面交换造成的低效处理。
10.3 进程管理
10.3.1 进程状态
注:可能同时有多个进程处于准备就绪或等待状态,但只有一个进程处于运行状态。
10.3.2 进程控制块
进程控制块(process control block):操作系统管理进程信息使用的数据结构。
上下文切换(context switch):当一个进程移出CPU时,另一个进程取代它发生的寄存器信息交换。
10.4 CPU调度
- 先到先服务FCFS
- 最短作业优先SJN
轮询法
可能是应用最广泛的,一般支持所有的作业,被认为是最公平的算法。
第十一章 文件系统和目录
11.1 文件系统
文件(file): 数据的有名集合,用于组织二级存储设备。
文件是可以写入二级存储设备的最小数据量。
文件系统(file system):操作系统为它管理的文件提供的逻辑视图。
目录(directory):文件的有名分组。
11.1.1 文本文件和二进制文件
文本文件(text file):包含字符的文件。
二进制文件(binary file):包含特定格式的数据的文件,要求给位串一一个特定的解释。
有些信息有字符表示法,通常使人更容易理解和修改。
有些信息类型则是通过定义特定的二进制格式或解释来表示数据,以使其更有效且更符合逻辑。
注:包含报表的文档并不是文本文件,而是二进制文件。
11.1.2 文件类型
文件类型(file type):文件中存放的关于类型的信息。
文件扩展名(fileextensionn):文件名中说明文件类型的部分。
注:可以任意命名文件,改变文件扩展名不会改变文件中的数据或它的内部格式。
11.1.3 文件操作
创建——删除
打开——关闭
读取数据——写入数据
重定义文件中的当前文件指针(地址——读指针,写指针)
把数据附加到文件的结尾
删减、重命名、复制
11.1.4 文件访问
11.1.5 文件保护
多用户系统中,文件保护的重要性居于首要地位。
确保合法的文件访问是操作系统的责任。
每个文件都由一个特定用户所拥有,通常是文件的创建者。
一个文件可能具有一个相关的组名,分组只是一个用户列表;一个管理组中的用户都具有Group许可。
11.2 目录
目录文件存放的是关于目录中的其他文件的数据。
11.2 目录树
分级结构
文件系统→目录树(directory tree):展示文件系统的嵌套目录组织的结构
最高层目录→根目录(root directory):包含其他所有目录的最高层目录。
工作目录(working directory):当前活动的子目录。
11.2.2 路径名
路径(path):文件或子目录在文件系统中的位置的文本名称。
绝对路径( absolute path):从根目录开始,包括所有后继子目录的路径。
相对路径(relative path):从当前工作目录开始的路径。
11.3 磁盘调度
磁盘调度(disk scheduling):决定先满足哪个磁盘I/O请求的操作。
建立原因:二级I/O一般是计算机系统中最慢的部分
→访问磁盘驱动器上的信息的方法对于文件系统至关重要
→建立访问磁盘的请求列表
三种磁盘调度法:
先到先服务
不考虑读写头的当前位置
最短寻道时间优先
通过尽可能少的读写头移动满足所有未解决的请求。 可能会在满足一个请求后改变读写头的移动方向。 “饿死”:新的请求总是比早期的请求所需要的柱面离当前位置近。
SCAN
读写头向轴心移动,再向盘片边缘移动,在两者之间来回移动。
题后小结
1.文本文件与二进制文件
能存储的数据类型不同
文本文件只能存储char型字符变量。二进制文件可以存储char/int/short/long/float/……各种变量值。
每条数据的长度
文本文件每条数据通常是固定长度的。以ASCII为例,每条数据(每个字符)都是1个字节。进制文件每条数据不固定。如short占两个字节,int占四个字节,float占8个字节……
读取的软件不同
文本文件编辑器就可以读写。比如记事本、NotePad++、Vim等。二进制文件需要特别的解码器。比如bmp文件需要图像查看器,rmvb需要播放器……
操作系统对换行符(‘\n’)的处理不同(不重要)
文本文件,操作系统会对’\n’进行一些隐式变换,因此文本文件直接跨平台使用会出问题。 在Windows下,写入’\n’时,操作系统会隐式的将’\n’转换为”\r\n”,再写入到文件中;读的时候,会把“\r\n”隐式转化为’\n’,再读到变量中。 在Linux下,写入’\n’时,操作系统不做隐式变换。 二进制文件,操作系统不会对’\n’进行隐式变换,很多二进制文件(如电影、图片等)可以跨平台使用。
从存储方式来说,文件在磁盘上的存储方式都是二进制形式,所以,文本文件其实也应该算二进制文件。先从他们的区别来说,虽然都是二进制文件,但是二进制代表的意思不一样。
可参考:https://blog.csdn.net/colourful_sky/article/details/80334250
2.关于进程控制块
进程控制块(PCB)是系统为了管理进程设置的一个专门的数据结构。系统用它来记录进程的外部特征,描述进程的运动变化过程。同时,系统可以利用PCB来控制和管理进程,所以说,PCB(进程控制块)是系统感知进程存在的唯一标志。
记载信息:
PCB通常记载进程之相关信息,包括:
1. 程序计数器:接着要运行的指令地址。
2. 进程状态:可以是new、ready、running、waiting或 blocked等。
3. CPU暂存器:如累加器、索引暂存器(Index register)、堆栈指针以及一般用途暂存器、状况代码等,主要用途在于中断时暂时存储数据,以便稍后继续利用;其数量及类因电脑架构有所差异。
4. CPU排班法:优先级、排班队列等指针以及其他参数。
5. 存储器管理:如标签页表等。
6. 会计信息:如CPU与实际时间之使用数量、时限、账号、工作或进程号码。
7. 输入输出状态:配置进程使用I/O设备,如磁带机。
组织方式:
1.线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。
2.索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。
3.链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。
3.单个CPU一个时刻只能运行一个线程
单核CPU电脑同一时间内只能执行一个线程,这句话是对的。
首先了解一下,CPU执行的过程,它是把时间分成若干个小时间段,这些时间段很小的。
系统中有很多进程,每个进程中又包含很多线程。
在同一时间段内,电脑CPU只能处理一个线程(线程A),而下一个 时间段就不一定是上一个时间段内执行的那个线程(线程A)了,可能是别的线程(线程B)。
4.回顾磁盘与磁带
磁盘
记录的是数字信号。重放时由播放软件将数字信号转换为模拟信号。例如U盘、硬盘、内存卡等等。
数字信号,记录的是0和1,没有其他。
磁带
用于记录声音的磁带记录的是模拟信号。重放时,由音频电路直接进行放大输出。磁带,是由传动机械拖动磁带运行。磁带是条状带形。
模拟信号,记录的是声音的频率和幅度。
磁带存储比起硬盘存储有什么优缺点?
1、成本上,磁带前期投入大,后期投入小,因为前期涉及到磁带机设备,一般都比较高,而后期的磁带比磁盘要便宜的多。
磁带:机器贵,磁带便宜,适合长期大容量存储使用。
磁盘:机器便宜,磁盘相对磁带贵,适合中小容量使用。
2、磁带可以支持离线断电存储,易保管。相对来看磁盘虽然也支持断电离线存储,但便捷性和维护性上,和磁带相比优势很小。
3、维护成本上,磁带机要高于磁盘。磁带机如果不做高可用,发生故障,只能等待修复,而使用磁盘,借助分布式存储集群,单或多节点故障并不影响整体使用。
综上所述,虽然磁带有相对优势较强,但随着分布式存储技术的发展和应用,以及磁盘单盘容量不断提升和每GB价格的下降,越来越多的场景开始使用分布式存储替换磁带机。
作者:crasybest
链接:https://www.zhihu.com/question/317948198/answer/652680267
来源:知乎