第二版linux操作系统原理与应用chp4

合集下载

操作系统原理与应用(第2版)课件第1章 操作系统概述课件

操作系统原理与应用(第2版)课件第1章  操作系统概述课件
见P23 图1-7 UNIX系统结构
见P23 图1-7UNIX系统结构
17
1.8 UNIX系统的特点和结构
3、UNIX的结构
trap 用户层
用户程序
程序库
系统调用程序接口


文件系统

缓冲区管理
进程 控制 系统
进程通信 进程调度
字符设备 块设备 设备驱动
内存管理
硬件层
硬件
18
8
1.3 操作系统的结构 一、环境(外部结构)
OS的外部环境主要是指硬件、其他软件和用户(人)。 二、体系结构(内部结构) 在OS 的底层是对硬件的控制程序(即对资源的一些管理 程序),最上层是系统调用的接口程序。在OS内部还要 有进程、设备、存储、文件系统管理模块。
9
1.4 操作系统的分类 一、多道批处理系统
三、执行系统 优点:提高了系统的安全性、提高了系统的效率 缺点:主机时间的浪费仍然很严重 四、多道程序系统阶段 多道程序系统---就是能够控制多道程序并行的系统。 基本思想:是在内存里同时存放若干道程序,它们可 以并行运行,也可以交替运行。 特点:多道程序并行
5
1.2 什么是操作系统
一、概念 操作系统(OS)-----是管理计算机系统资源(硬件和软 件)的系统软件,它为用户使用计算机提供方便、有 效和安全可靠的工作环境。 补充说明: (1)从此定义上讲,操作系统是软件而不是硬件,但实 际上它是一个软、硬件结合的有机体。 (2)操作系统是系统软件而不是应用软件,但它与其他 系统软件不同。
11

1.4 操作系统的分类 五、区别
(1)分时系统与实时系统的区别 分时系统的目标是提供一种随时可供多个用户使用的通用性很强的系 统,用户与系统之间具有较强的交互作用或会话能力;分时系统对响 应时间的要求一般是以人能接受的程度为依据的,其响应的数量级通 常为秒。 实时系统大多是具有特殊用途的专用系统,它仅允许终端操作员访问 有限数量的专用程序,而不能书写或修改程序。

操作系统原理与实践教程(第二版)第4章习题答案

操作系统原理与实践教程(第二版)第4章习题答案

操作系统原理与实践教程(第二版)第4章习题答案第4章进程同步与死锁(1) 什么是进程同步?什么是进程互斥?解:同步是进程间的直接制约关系,这种制约主要源于进程间的合作。

进程同步的主要任务就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。

进程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。

互斥是一种特殊的同步方式。

(2) 进程执行时为什么要设置进入区和退出区?解:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。

(3) 同步机构需要遵循的基本准则是什么?请简要说明。

解:同步机制都应遵循下面的4条准则:1.空闲让进。

当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。

2.忙则等待。

当有一个进程在临界区时,其它欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。

3.有限等待。

对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,以免陷入“饥饿”状态。

4.让权等待。

当进程不能进入临界区时,应立即放弃占用CPU,以使其它进程有机会得到CPU的使用权,以免陷入“饥饿”状态。

(4) 整型信号量是否能完全遵循同步机构的四条基本准则?为什么?解:不能。

在整型信号量机制中,未遵循“让权等待”的准则。

操作系统原理及应用(Linux)(第二版)教学课件王红第9章 操作系统的安全性

操作系统原理及应用(Linux)(第二版)教学课件王红第9章 操作系统的安全性
28
加密是一项重要的计算机安全技术,加密就是 把可理解的信息转换成为不可理解的信息。病毒是 具有破坏性的计算机程序,它的运行离不开系统环 境的支持,可以采用多种机制来防御病毒,但是都 有其局限性,都不是完美无缺的。监控可以检测和 发现那些可能的违反系统安全的活动;日志文件可 以帮助用户更容易跟踪间发性问题或一些非法侵袭, 可以利用它综合各方面的信息,去发现故障的原因、 侵入的来源以及系统被破坏的范围。
16
<f1, {R, W}> <f2, {X}> <f3, {R, W}>
<f2, {W}> <f4, {P}>
<f1, {X}> <f3, {W}>
图9-1 三个保护域
17
域可以有以下几种实现方式:
1
每一个用户可以是一个域。在这种情形下,可以
存取的对象及其权限取决于用户的身份,当一个用户注销而
4 密钥K。密钥是加密和解密算法中的关键参数。
加密过程可描述为:明文P在发送方经加密算法E变成
密文Y。接收方通过密钥K,将密文转换为明文P。 加密具体有很多种实现方法,如简单的易位法、置换法、
对称加密算法和非对称加密算法等。
22
9.2.5 病毒及其防御机制
1.计算机病毒概述 计算机病毒是一种可传染其他程序的程序,它 通过修改其它进程使之成为含有病毒的版本或可能 的演化版本。病毒可经过计算机系统或计算机网络 进行传播。一旦病毒进入了某个程序,就将影响该 程序的运行,并且这个受感染的程序可以作为传染 源,继续感染其它的程序,甚至对系统的安全性造 成威胁。
第九章 操作系统的安全性
本章学习目标 通过本章的学习,读者应掌握以下内容: • 计算机系统安全性的内涵 • 操作系统的安全性功能 • 操作系统的安全机制 • 安全操作系统的开发

计算机操作系统(第二版)课件:Linux内存管理机制

计算机操作系统(第二版)课件:Linux内存管理机制

• Linux采用分页机制
– 以页面为单位对虚拟地址空间进行划分 – 页面大小通常为2k(例如k=9,10,11,12)
• Linux特权级
– 核心态 – 用户态
• Linux采用四级页表
– PGD – PUD – PMD – PTE
与体系结构相关的头文件
• include/asm-arch/page.h • include/asm-arch/pgtable.h • include/asm-x86/page_32.h • include/asm-x86/pgtable_64.h
• 存储在节点实例的结构体数组node_zones中 • node_zonelists是节点的后备内存域列表 • 整型变量nr_zones存储了节点中所包含的内存域的
数量 • 每个内存域都包含一定数量的页框
– node_mem_map指向页框结构体数组 – node_spanned_pages页框总数量
Linux内存管理机制
4.7.1 Linux地址映射机制
• 虚拟地址空间
– 程序可以看到和使用的空间大小 – 与实际可用的物理内存数量无关 – 每个进程的虚拟地址空间都是独立的 – 分为内核空间和用户空间(TASK_SIZE) – 例如32位系统是232=4GB
• 虚拟地址
– 虚拟地址空间中的地址称为虚拟地址 – 程序中使用的就是虚拟地址
– 保存管理性数据的缓存对象 – 保存被管理对象的各个slab
4.7.3 Linux虚拟地址空间管理
每个进程都有一个自己可以访问的连续内存区,但不是 实际的物理内存,所以称为虚拟地址空间。
每个进程都具有同样的系统视图,多个进程因此可以同 时运行,而不会相互干扰。
虚拟地址空间通过地址映射与物理地址空间关联,但是 并非所有的页面都有对应的页框,只有部分页面装载到物理 内存中。

操作系统原理与应用(第2版)清大版第4章习题参考答案

操作系统原理与应用(第2版)清大版第4章习题参考答案

1、管理对象是内存及作为内存的扩展和延伸的后援存储器(外存)。

基本任务:a.按某种算法分配和回收存储空间。

b.实现逻辑地址到物理地址的转换。

c.由软硬件共同实现程序间的相互保护。

2、程序中通过符号名称来调用、访问子程序和数据,这些符号名的集合被称为“名字空间”,简称名空间。

当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为目标程序,或者相对目标程序。

这个目标程序指令的顺序都以0为一个参考地址,这些地址被称为相对地址,或者逻辑地址,有的系统也称为虚拟地址。

相对地址的集合称为相对地址空间,也称虚拟地址空间。

目标程序最后要被装入系统内存才能运行。

目标程序被装入的用户存储区的起始地址是一个变动值,与系统对存储器的使用有关,也与分配给用户使用的实际大小有关。

要把以0作为参考地址的目标程序装入一个以某个地址为起点的用户存储区,需要进行一个地址的对应转换,这种转换在操作系统中称为地址重定位。

也就是说将目标地址中以0作为参考点的指令序列,转换为以一个实际的存储器单元地址为基准的指令序列,从而才成为一个可以由CPU调用执行的程序,它被称为绝对目标程序或者执行程序。

这个绝对的地址集合也被称为绝对地址空间,或物理地址空间。

用户程序的装入,是一个从外存空间将用户已经编译好的目标程序,装入内存的过程。

在这个过程中,要进行将相对地址空间的目标程序转换为绝对地址空间的可执行程序,这个地址变换的过程称为地址重定位,也称地址映射,或者地址映象。

覆盖:是利用程序内部结构的特征,以较小的内存空间运行较大程序的技术。

交换:是指内外存之间交换信息。

3、一旦一个区域分配给一个作业后,其剩余空间不能再用(内零头或内碎片),另外当一区域小于当前所有作业的大小时,便整个弃置不用(外零头或外碎片)。

4、(1)2.4us (2)1.5us5、为了给大作业(其地址空间超过主存可用空间)用户提供方便,使他们摆脱对主存和外存的分配和管理。

Linux原理及应用04

Linux原理及应用04

Memory mapped region: File-mapping Shared libraries
Linux的线性地址空间分布
process-specific data structures (page tables, task and mm structs) same for each process 0xc0 %esp physical memory kernel code/data/stack kernel VM demand-zero process VM .data .text
3.1虚拟存储器


额外附加的存储器空间总是十分诱人的,即使它们 也很慢。如果在RAM被用完时,通过把暂时不用的 代码和数据转移到磁盘上以腾出更多空间的方法来 使用磁盘代替RAM的话,那将是很好的一件事情。 Linux恰好能够做到这一点,这被称之为虚拟内存 (virtual memory)。 虚拟内存是一种对RAM和磁盘
3.4.2 地址映射

Intel x86保护模式的地址映射
段选择子16bits 段内偏移32bits GDT、LDT
逻辑地址
线性地址
页目录索引10bits 页表索引10bits
pgd、pte 物理地址 物理地址32bits
页内偏移12bits
3.4.2 地址映射

Intel x86的分段
描述符索引13bits GDT/LDT 1bit 访问特权级 2bits 段描述符8bytes
stack
Memory mapped region for shared libraries brk runtime heap (via malloc) uninitialized data (.bss) initialized data (.data) program text (.text) forbidden

操作系统原理及应用(Linux)(第二版)第4章 存储器的管理课件文本

操作系统原理及应用(Linux)(第二版)第4章 存储器的管理课件文本
•了解Linux操作系统的存储管理技术。
1
教学内容
4.1 存储器管理概述
4.2 连续分配存储管理方式
4.3 分页存储管理方式 4.4 分段存储管理方式 4.5 虚拟存储器的基本概念
4.6 请求分页 4.7 请求分段存储管理
4.8 LINUX系统的内存管理方法
本章小结
2
第4章 存储器管理
4.1 存储器管理概述
28
第4章 存储器管理
操作系统 用户程序1 10kb 用户程序3 30kb 用户程序6 14kb
用户程序9
26kb
a紧凑前
操作系统 用户程序1 用户程序3 用户程序6 用户程序9
b紧凑后 图4.9 紧凑的示意
80KB
29
第4章 存储器管理
2.动态重定位
在该方式中,将程序中的相对地址转换为物理地址的工作被推 迟到程序指令真正要执行时进行。因此,允许作业在运行过程中移 动的技术,必须获得硬件地址变换机构的支持。即在系统增加一个 重定位寄存器,用它来装入程序在内存中的起始地址。程序在执行 时,真正访问的内存地址是相对地址与重定位寄存器中地址相加而 形成的。
17
第4章 存储器管理
界限寄存器
重定位寄存器
逻辑地址
CPU
<
物理地址 +
内存
地址错 图4.7 地址映射和地址保护
18
第4章 存储器管理
4.2.2 固定分区分配方式
固定分区管理比较简单,本节仅以举例的方式说明其原理。 设一个容量为32k的实际内存,分割成如下若干区域,如图所示。
操作 10k 系 统
14
第4章 存储器管理
4.2.1 单道程序的连续分配

高级操作系统 chp4

高级操作系统 chp4

4.1.2 文件结构 文件结构通常有三种方式:字节序列、记录序列、 文件结构通常有三种方式:字节序列、记录序列、 树。 字节序列中操作系统并不关心文件的内容 中操作系统并不关心文件的内容, 在字节序列中操作系统并不关心文件的内容,它的 任何含义都可以由用户进程来解释。 任何含义都可以由用户进程来解释。在UNIX和MS和 DOS中采用这种方法。这种方法的特点是灵活,缺 中采用这种方法。 中采用这种方法 这种方法的特点是灵活, 点是操作系统不能、提供任何形式的帮助。 点是操作系统不能、提供任何形式的帮助。 记录序列中文件是具有一定长度的记录的序列 中文件是具有一定长度的记录的序列, 在记录序列中文件是具有一定长度的记录的序列, 每个记录都有它的内部结构。记录是文件增加、 每个记录都有它的内部结构。记录是文件增加、删 修改的单位。记录的长度是相等的。 除、修改的单位。记录的长度是相等的。这种方法 在早期的计算机系统中。 在早期的计算机系统中。 结构中,文件由一棵记录树构成, 在树结构中,文件由一棵记录树构成,每个记录的 长度可以不相等,记录的固定位置上有关键字段, 长度可以不相等,记录的固定位置上有关键字段, 记录按关键字段排序,可以实现快速查找。 记录按关键字段排序,可以实现快速查找。主要用 于现代的商业系统。 于现代的商业系统。
(3)树型目录结构 ) 在两级目录中, 在两级目录中,如果 有一个用户有很多的 文件, 文件,则在自己的 UFD中,仍有混乱的 中 问题。 问题。他们希望能按 一定的逻辑结构来组 织自己的文件。 织自己的文件。这就 形成树型目录结构 树型目录结构。 形成树型目录结构。 这时用户可以拥有自 己的子目录去区分不 同的文件。 同的文件。
4.1.4 文件存取 文件存取类型有顺序存取 随机存取。 顺序存取、 文件存取类型有顺序存取、随机存取。 顺序存取指 顺序存取指用户只能从开始的地方顺序读文件的所 有记录,不能跳过一些内容。主要用于磁带设备。 有记录,不能跳过一些内容。主要用于磁带设备。 随机存取指可以按任何次序读取记录。 随机存取指可以按任何次序读取记录。如按照关键 字来进行读取。主要用于磁盘设备。 字来进行读取。主要用于磁盘设备。 4.1.5 文件属性 操作系统为管理文件为文件保存文件属性。 操作系统为管理文件为文件保存文件属性。 文件属性在不同的操作系统中有很大的差别。 文件属性在不同的操作系统中有很大的差别。 保护、口令、创建者、所有者等属性(文件保护) 保护、口令、创建者、所有者等属性(文件保护) 各种标志(如只读、隐藏、系统、存档) 各种标志(如只读、隐藏、系统、存档) 记录长度、关键字位置、关键字长度(查找) 记录长度、关键字位置、关键字长度(查找) 文件的创立时间、最近访问时间、 文件的创立时间、最近访问时间、最近修改时间 很多种。例如UNIX和MS-DOS中有普通 中有普通 文件类型有很多种。例如 和 中有 文件、目录文件、字符特殊文件、块特殊文件。 文件、目录文件、字符特殊文件、块特殊文件。 普通文件中包含用户要存储的信息 中包含用户要存储的信息, 在普通文件中包含用户要存储的信息,是本章的重 点。 目录文件中保存磁盘文件系统结构 是系统文件。 中保存磁盘文件系统结构, 在目录文件中保存磁盘文件系统结构,是系统文件。 字符特殊设备中管理和设备的输入输出 中管理和设备的输入输出。 在字符特殊设备中管理和设备的输入输出。 使用块特殊文件用于表示磁盘。 块特殊文件用于表示磁盘 使用块特殊文件用于表示磁盘。 普通文件是ASCII文件或者二进制文件。 文件或者二进制文件。 普通文件是 文件或者二进制文件 ASCII文件由多行正文组成,可以显示和打印。可 文件由多行正文组成 文件由多行正文组成,可以显示和打印。 以用通用的文本编辑器进行编辑。 以用通用的文本编辑器进行编辑。 二进制文件不用于显示和打印 有一定的内部结构。 不用于显示和打印, 二进制文件不用于显示和打印,有一定的内部结构。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

struct list_head mmlist;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack;
unsigned long arg_start, arg_end, env_start, env_end;
虚拟地址空间 4G
3G
物理内存 X
0
0
图4.1 内核的虚拟地址空间到物理地址空间的映射
<>
内核空间到物理内存的映射
page.h头文件中对内核空间中地址映射的 说明及定义:
#define __PAGE_OFFSET
(0xC0000000)
……
#define PAGE_OFFSET
((unsigned long)__PAGE_OFFSET)
unsigned long rss, total_vm, locked_vm;
unsigned long def_flags;
……
};
<>
mm_struct 结构主要域
VM_AREA_STRUCT 结构
struct vm_area_struct { struct mm_struct * vm_mm; unsigned long vm_start; unsigned long vm_end; struct vm_area_struct * vm_next; pgprot_t vm_page_prot; unsigned long vm_flags; struct rb_node_t vm_rb; struct vm_operations_struct * vm_ops; unsigned long vm_pgoff; struct file * vm_file; void * vm_private_data; …… };
• mm_struct结构对进程整个用户空间进行描述 • vm_area_structs结构对用户空间中各个区间(简
称虚存区)进行描述
<>
mm_struct 结构
struct mm_struct {
struct vm_area_struct * mmap;
/*核心数据结构*/
rb_root_t mm_rb;
第四章 内存管理
Linux的内存管理 进程的用户空间管理 请页机制 物理内存的分配与回收 交换机制 内存管理实例
内存管理 内存管理
本章将围绕以下两个问题展开:
一个源程序编译链接后形成的地址空间是虚地址 空间还是物理地址空间?如何管理?
程序装入内存的过程中,虚地址如何被 转换为物理地址?
内存的层次结构
扩大了的记忆-虚拟内存
❖ 虚拟内存的基本思想:在计算机中运行 的程序,其代码、数据和堆栈的总量可 以超过实际内存的大小,操作系统只将 当前使用的程序块保留在内存中,其余 的程序块则保留在磁盘上。必要时,操 作系统负责在磁盘和内存之间交换程序 块。
虚地址到实地址转换
虚拟地址
虚拟内存、内核空间和用户空间
指针,每个vm_area_struct代表进程的一个虚拟 地址区间。
<>
相关数据结构间的关系
< > 相关数据结构之间 的关系示意图
创建进程用户空间
• fork()系统调用在创建新进程时也为该 进程创建完整的用户空间
• 具体而言,是通过拷贝或共享父进程 的用户空间来实现的,即内核调用 copy_mm()函数,为新进程建立所有页 表和mm_struct结构
图4.2 虚拟内存实现机制及之间的关系
<>
进程的用户空间管理
• 每个进程经编译、链接后形成的二进制 映像文件有一个代码段和数据段
• 进程运行时须有独占的堆栈空间
<>
进程用户空间
• Linux把进程的用户空间划分为一个个区间,便 于管理
• 一个进程的用户地址空间主要由mm_struct结构 和vm_area_structs结构来描述。
内核空间(1GB)

进程1 进程2
的用 的用
户空 户空


(3GB) (3GB)

进程n 的用

户空



(3GB)

虚拟内存、内核空间和用户空间
❖ 虚拟内存-共4G字节,分为内核空间 (最高的1G字节)和用户空间(较低的 3G字节)两部分,每个进程最大拥有3G 字节私有虚存空间
❖ 地址转换-通过页表把虚存空间的一个 地址转换为物理空间中的实际地址。
struct vm_area_struct * mmap_cache;
pgd_t * pgd;
atomic_t mm_users;
atomic_t mm_count;
int map_count;
struct rw_semaphore mmap_sem;
spinlock_t page_table_lock;
<>
内核映像
保留 内核映像
动态内存
0
0x100000 start_mem
end_mem
系统启动以后的物理内存布局
<>
虚拟内存实现机制
• Linux虚拟内存的实现需要多种机制 的支持 –地址映射机制 –请页机制 –内存分配和回收机制 –交换机制 –缓存和刷新机制
<>
虚拟内存实现机制及之间的关系
地址映射
<>
VM_AREA_STRUCT 结构主要域
<>
相关数据结构间的关系
• 进程控制块是内核中的核心数据结构。 • 在进程的task_struct结构中包含一个mm域,它
是指向mm_struct结构的指针。 • 而进程的mm_struct结构则包含进程的可执行映
像信息以及进程的页目录指针pgd等。 • 该结构还包含有指向vm_area_struct结构的几个
#define __pa(x)
((unsigned long)(x)-PAGE_OFFSET)
#define __va(x)
((void *)((unsigned long)(x)+PAGE_OFFSET))
➢ 给定一个虚地址x,其物理地址为x-PAGE_OFFSET ➢ 给定一个物理地址x,其虚地址为x+PAGE_OFFSET
内核空间到物理内存的映射映象”
❖ 进程的用户空间中存放的是用户程序 的代码和数据
❖ 内核空间映射到物理内存总是从最低
地址(0x00000000)开始,使之在内
核空间与物理内存之间建立简单的线 性映射关系。
<>
内核空间到物理内存的映射
相关文档
最新文档