(北邮孟祥武老师)高级操作系统讲义

(北邮孟祥武老师)高级操作系统讲义
(北邮孟祥武老师)高级操作系统讲义

高级操作系统

北京邮电大学计算机

学院

一上课基础

学习过本科操作系统课程

熟悉一种程序设计语言

二参考书:

1 何炎祥等高级操作系统科学出版社,1999年

2何炎祥分布式操作系统

高等教育出版社,2005年

3Andrew S. Tanenbaum Distributed Operating Systems. 中译本分布式操作系统

电子出版社1999年

本科阶段

4.张尧学,史美林计算机

操作系统教程清华大学出版社,2000

5.汤子瀛等计算机操作

系统西安电子科技大学

出版社,1999

6.Abraham Silberschatz et al.

Operating System Concept

高等教育出版社,2003 ,2007 7孟祥武张玉洁等操作系统考研指导,北京邮电大学出版社,2002

8 张玉洁孟祥武操作系统习题解答与考试复习指导, 机械工业出版社,2012年

三主要内容

1 分布式计算机系统

2 分布式通信

3 分布式协同处理

4 资源管理

5 进程与处理机管理

6 任务分配与负载平衡

7 分布式文件系统

8 命名服务

9 事务的并发控制

10 分布式事务

11 恢复与容错

12 分布式共享内存

13 操作系统的安全性

主要讨论设计和构造分布式操作系统的基本原理和典型实现技术。

分布式操作系统(Distributed OS, DOS)

目前,分布式操作系统作为多机操作系统的高级表现形式,

仍处于研究和发展阶段,在理

论和研制方法上仍有待于进一

步解决和探索的问题。

四主要考核内容

五教学目的

1了解分布式操作系统技术

方面的新成果,了解目前技术

发展的情况,在实际应用中,

科学、合理选择产品、系统,

避免盲目、为进行二次开发等打下基础。

2目前操作系统产品正逐步

吸收分布式操作系统方面的

研究成果,通过学习,可以从更高一层看目前的操作系统技术、产品,可以预测它的发展。

3如果做实际、应用项目,可以采用一些新技术。包括完成系统软件和应用软件。

引言

操作系统(本科基础)进一步1 网络操作系统

具有网络功能的操作系统,无严格定义。MS-DOS

(1)网络通信能力

(2)提供网络服务

网络上各节点的主机运

行自身的操作系统,它不

仅要保证本机的系统进

程或用户进程能简便、有

效地使用网络中各种资

源;同时,也为网中其它

用户使用本机资源提供服

务。

OS+网络协议

2 分布式操作系统

每台计算机没有各自独立的OS,用户不了解其文件存储

在什么地方,也不了解其程序是由远程处理机执行的,分布式OS自动管理文件的放置;

网络OS每台计算机均有

自己的OS;

网络OS的用户要访问资源,用户必须了解资源的位置,用“文件传输”命令在计算机之间移动文件。

分布式操作系统是为分布式计算机系统配置的一种操作系统。

分布式OS在这种多机系统环境下,

负责控制和管理以协同方

式工作的各类系统资源;

负责分布式进程的同步与执行,处理机间的通信、调度与分配等控制事务,自动实行全系统范围内的任务分配和负载平衡;具有高度并行性以及故障检测和重构能力。

3 并行操作系统

并行机——> 并行操作系统

→并行DBMS ——>

→并行算法——>

→并行程序设计语言及

其开发环境(并行编译)

国内的:银河机、曙光机等;

PVM (parallel machine) NOW 工作站机群系统

CPU

10 ——> 40 ——> 20

20 ——> 80 ——> 40

4实时操作系统

(Real- Time Operating System, RTOS)

支持实时系统工作的操作系统,响应时间有明确的规定;

(1)执行效率高、快速、实时性强

(2)系统小,可剪裁,核心

部分更小;

(3)主要应用于实时控制领域;

3种系统之间的一些不同之处。

推动操作系统发展的因素:(1)硬件升级、或者出现了新的硬件类型;

GUI取代字符界面

(2)用户、系统管理者的需求,新的功能、工具不断加入到OS中;

(3)bug 维护、修补;

北邮网络-操作系统原理-阶段作业三

一、单项选择题(共10道小题,共100.0分) 1. 不支持记录等结构的文件类型是 A. 顺序文件 B. 索引顺序文件 C. 索引文件 D. 哈希文件 2. 在I/O系统层次模型中处于最高的一个层次,负责所有设备I/O工作中均 要用到的共同的功能的模块是 A. 系统服务接口 B. I/O子系统 C. 设备驱动程序接口 D. 设备驱动程序 3. 在采用局部转换策略进行页面置换的系统中,一个进程得到3个页架。系 统采用先进先出的转换算法,该进程的页面调度序列为:1,3,2,6,2,5,6,4,6。如果页面初次装入时不计算为缺页,请问该进程在调度中会产生几次缺页。 A. 6次 B. 5次 C. 4次 D. 3次

4. 完成从物理页架号到虚地址的映射是 A. 页表 B. 反向页表 C. 多级页表 D. 快表 5. 下列设备中,()为块设备。 A. 软盘驱动器 B. MODEM C. 声卡 D. 鼠标 6. 在下列的实存管理技术中,同一进程在连续地址存储的技术是 A. 可变分区多道管理技术 B. 多重分区管理 C. 简单分页 D. 简单分段

7. 采用简单分页系统的内存管理,页面的大小是8K字节。现有一个逻辑地 址A=3580h,该进程的页表为 [0,5/1,6/2,1/3,0...],则该逻辑地址对应的物理地址A'=() A. 0580h B. D580h C. 6580h D. 7580h 8. 对于实存管理技术,实际上它不具备的功能有: A. 主存分配 B. 地址转换和重定位 C. 存储保护和主存共享 D. 存储扩充 9. 在当前的计算机系统中,通常是按()进行编址。 A. 位 B. 字节

邮电大学操作系统综合课程设计

邮电大学操作系统综合 课程设计 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

北京邮电大学课程设计报告 目录

实验一 Linux启动优化 一实验目的 Linux 系统从启动到登录 shell 界面需要花费较长时间,在普通微机上的启动过程需要十几秒或更长。如果要启动 X 界面,那花费的时间就更多了。启动时间过长对嵌入式系统而言,如信息家电产品(机顶盒),是无法接受的。 Linux 系统的启动由内核态下的启动和用户态下的启动组成。利用本实验中采取的多种方法,可以简化 Linux 系统启动过程,提高 Linux 系统启动速度,适应嵌入式系统快速启动和实时应用的需要。

二实验内容与步骤 1内核态启动优化 1)测量几个较大代码模块的启动时间 2)更改 MAX_HWIFS ,减小检测IDE过程的启动时间 2 用户态启动优化 1)开机画面字符隐藏技术 2)开机画面隐藏/调出 3)开机画面更换 3 测试系统总的启动时间 三实验原理 根据 Linux 源代码,从根本上分析 Linux 启动原理 四实验结果及分析 1 内核态启动优化 在 Redhat 9 中,安装内核开发包,能得到 Linux 源代码。位于/usr/src/ 目录下。 修改linux/init/,在所有的需要检测的代码段添加条件编译TIME_TEST常 量。 测试的代码段包括console_init(), vfs_caches_init,和pci_init()等。 改动完成之后,编译内核 1,清除源码树:make mrproper 2,生成现有.config文件:make oldconfig 3,配置内核:make menuconfig 4,生成依赖关系:make dep 5,编译内核:make bzImage 6,编译模块:make modules 7,安装模块:make modules_install 8,安装内核:make install 9,重起:init 6 启动结束之后,用 dmesg| grep “second” 得到所有设定的打印位置的记录

北邮研究生 高级计算机系统结构

计算机系统结构的发展历程 课程:高级计算机系统结构 姓名: 学号: 班级:

2015年12月 一、计算机系统结构 随着当今社会和科技的飞速发展,自四十年代计算机问世以来,计算机科学更是发展迅速,应用领域不断扩展计算机的普及和广泛应用,现代社会正朝着高度信息化,自动化方向发展。计算机逐渐成为社会必不可少的支柱力量。 计算机系统是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件系统和软件系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行工作。 而计算机系统结构是计算机的的机器语言程序员或编译程序编写者所看到的外特性。所谓外特性,就是计算机的概念性结构和功能特性,主要研究计算机系统的基本工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念。其也称为计算机体系结构,它是由计算机结构外特性,内特性,微外特性组成的。经典的计算机系统结构的定义是指计算机系统多级层次结构中机器语言机器级的结构,它是软件和硬件/固件的主要交界面,是由机器语言程序、汇编语言源程序和高级语言源程序翻译生成的机器语言目标程序能在机器上正确运行所应具有的界面结构和功能。 以最常见的冯诺依曼计算机为例,计算机系统结构包含了以下几个方面: 1.指令集架构(Instruction set architecture;简称ISA):被视为一种机器语言, 包含了许多相关的指令集(存储器定址、处理器控制,寄存器控制等等……)。 2.微体系结构/微架构(Microarchitecture)或称计算机组织(Computer

北邮操作系统进程管理实验报告及源代码

进程管理实验报告 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3、环境说明 本次实验使用的是win7下的VMWare workstation虚拟机,安装了ubuntu系统在ubuntu 系统下使用code::blocks IDE编写代码并执行程序的 4、实验内容: 1、进程的创建: (1)实验题目和要求: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 (2)程序设计说明: 参照书上的例子进行设计,详见源代码 (3)程序运行结果截图: (4)程序分析: a,b,c随机出现,因为父进程与两个子进程之间并没有同步措施,所以a,b,c随机打印出来,也就是三个进程的活动次序是随机进行的,不同的系统可能有不同的进程调度方式。 (5)源程序: #include #include #include int main() { pid_t pid1,pid2; if((pid1=fork()) printf("Fork Failed.\n"); exit(-1); } else if((pid1=fork())==0) printf("b\n"); else{ if((pid2=fork()) printf("Fork Failed.\n"); exit(-1); } else if((pid2=fork())==0) printf("c\n");

操作系统讲义

操作系统 第一章操作系统概述 1.1操作系统的目标和作用 1.1.1操作系统的目标 目标: 1.方便性。不需要人人都是程序员 2.有效性。工作协调高效 3.可扩充性。各自独立发展 4.开放性。移植和互操作 1.1.2操作系统的作用 1.OS作为用户与计算机硬件系统之间的接口OS处于用户与计算机硬件系统之间,用户通 过OS来使用计算机系统。(从用户角度来看,来操纵计算机。) (1)命令输入。形式又分为以下几种: 命令行(Comma nd Line In put ):由OS提供的一组联机命令(语言),用户可通过键盘输入有关命令,来直接操纵计算机系统。图形用户界面( GUI ):用户通过显示设备上的窗口和图标来操纵计算机系统和运行自己的程序。自然输入方式( NUI ):用户通过语音识别输入来操纵计算机系统和运行自己的程序。 (2)系统调用方式(System Call )。OS提供了一组系统调用,用户可在自己的应用程序中通过相应的使用编程调用API 1.1.3推动操作系统发展的主要动力 1.不断提高计算机资源利用率 2.方便用户 3.器件的不断更新换代 4.计算机体系结构的不断发展用户的需求是推动OS发展的根本动力 2.OS 作为计算机系统资源的管理者在一个计算机系统中通常都含有各种各样的硬件和软 件资源。需要空间和时间来使用这些资源,OS合理调配和使用。(这是从管理者的角度来看) 3.OS用作扩展机、虚拟机隐藏了计算机具体细节,为用户展现的是一台虚拟机,功能上扩展了几个功能部件的组合。 (这是从发展的角度来看) Government 1.2操作系统的发展过程 1.2.1无操作系统的计算机系统 1.人工操作方式 从第一台计算机ENIAC 诞生(1945 年 2 月)到50年代中期的计算机,属于第一代。这种人工操作方式有以下两方面的缺点:(1) 用户独占全机。(2) CPU 等待人工操作。 2.脱机输入/输出(Of-Line I/O) 方式这种脱机I/O方式的主要优点如下: (1)减少了CPU的空闲时间。(2)提高I/O速度。 1.2.2单道批处理系统 1.单道批处理系统(Simple Batch Processing System) 的处理过程 2.单道批处理系统的特征该系统的主要特征如下:(1) 自动性。(2) 顺序性。(3) 单道性。 1.2.3多道批处理系统 1.多道程序设计的基本概念 多道批处理系统(Multiprogrammed Batch Processing System) 。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为后备队列;然后,由作业调度程序按一定的算法从后备队列中选

北京邮电大学2009年操作系统期末试卷

北京邮电大学2008——2009学年第一学期 《操作系统》期末考试试题(A) 1.FILL IN BLANKS (10 points) 1.1 A _trap___ is a software-generated interrupt caused either by an error or by a specific request from a user program that an operating-system services be performed. 1.2 A ______ is used in Unix systems to notify a process that a particular event has occurred. 1.3 To manage the process executing, OS records the state and other information (e.g. the priority) of the process in . 1.4 The scheduling criteria include CPU utilization, throughput, turnaround time, waiting time, and response time .

1.5 For n concurrent processes that mutual exclusively use some resources, the code segmentations, in which the processes access the resources, are called deadlock . 1.6. The ___visual memory___ scheme enables users to run programs that are larger than actual physical memory, this allows the execution of a process that is not completely in memory. 1.7. The __FIFO___ page replacement algorithm associates with each page the time when that page was brought into memory. When a page must be replaced, the oldest page is chosen. 1.8The file system resides permanently on , which is designed to hold a large amount of data permanently. 1.9The file system itself is generally composed of many different levels, including the logical file system, the file-organization module, the and the I/O control. 1.10 T he kernel’s I/O subsystem provides numero us services. Among these are I/O scheduling, , caching, spooling, device reservation, and error handling, and name translation. 2.CHOICE ( 10 points ) 2.1 _____ operating systems have well defined, fixed time constraints. Processing must be done within the defined constrains, or the system will fail. A. Multimedia B. Real-time C. Clustered D. Network 2.2 Which one of the following OS is implemented based on microkernel structure? _____

北邮 操作系统 实验一 进程同步

实验一进程同步 1.实习要求 在Windows 环境下,创建一个包含n 个线程的控制进程。用这n 个线程来表示n 个读者或写者。每个线程按相应测试数据文件的要求,进行读写操作。请用信号量 机制分别实现读者优先和写者优先的读者-写者问题。 读者-写者问题的读写操作限制: 1)写-写互斥; 2)读-写互斥; 3)读-读允许; 读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作, 则该读者可直接开始读操作。 写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。 运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读 写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。 2.测试数据文件格式 测试数据文件包括n 行测试数据,分别描述创建的n 个线程是读者还是写者,以及读写 操作的开始时间和持续时间。每行测试数据包括四个字段,各字段间用空格分隔。第一字段为一个正整数,表示线程序号。第一字段表示相应线程角色,R 表示读者是,W 表示写者。第二字段为一个正数,表示读写操作的开始时间。线程创建后,延时相应时间(单位为秒)后发出对共享资源的读写申请。第三字段为一个正数,表示读写操作的持续时间。当线程读写申请成功后,开始对共享资源的读写操作,该操作持续相应时间后结束,并释放共享资源。下面是一个测试数据文件的例子: 1 R 3 5 2 W 4 5 3 R 5 2 4 R 6 5 5 W 5.1 3 3.本实验的相关知识 3.1进程 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 3.2线程 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有

北邮大三上-操作系统-存储管理实验报告

操作系统 实验三 存储管理实验 班级:2009211311 学号: 姓名:schnee

目录 1. 实验目的 (2) 2. 实验内容 (2) (1) 通过随机数产生一个指令序列,共320条指令 (2) (2) 将指令序列变换成为页地址流 (2) (3) 计算并输出下述各种算法在不同内存容量下的命中率 (2) 3. 随机数产生办法 (3) 环境说明 (3) 4. 程序设计说明 (3) 4.1.全局变量 (3) 4.2.随机指令序列的产生 (4) 4.3.FIFO算法 (4) 4.4.LRU算法 (4) 4.5.OPT算法 (5) 5. 编程实现(源程序): (5) 6. 运行结果及分析 (11) 6.1.运行(以某两次运行结果为例,列表如下:) (11) 6.2.Belady’s anomaly (11)

1.实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 2.实验内容 (1) 通过随机数产生一个指令序列,共320条指令 指令的地址按下述原则生成: a) 50% 的指令是顺序执行的; b) 25% 的指令是均匀分布在前地址部分; c) 25% 的指令是均匀分布在后地址部分; 具体的实施方法是: a) 在[0,319]的指令地址之间随机选取一起点m; b) 顺序执行一条指令,即执行地址为m+1的指令; c) 在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m'; d) 顺序执行一条指令,其地址为m'+1; e) 在后地址[m'+2,319]中随机选取一条指令并执行; f) 重复上述步骤a)~f),直到执行320次指令。 (2) 将指令序列变换成为页地址流 设: a) 页面大小为1K; b) 用户内存容量为4页到32页; c) 用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第10条~第19条指令为第1页(对应虚存地址为[10,19]); … … 第310条~第319条指令为第31页(对应虚存地址为[310,319])。 按以上方式,用户指令可以组成32页。 (3) 计算并输出下述各种算法在不同内存容量下的命中率 a) 先进先出的算法(FIFO); b) 最近最少使用算法(LRU); c) 最佳淘汰算法(OPT);

北邮高级操作系统期末试卷

2017,2015,2013北邮高级操作系统 试题 学号: 姓名: 成绩: 、分布式操作系统中的透明性主要是什么?其中那些透明性容易实现?哪些难实现????分? 难点: 、创建一个分布式数据库系统可提供有效的存取手段来操纵这些结点上的子数据库。 、不确定性,控制比较复杂,尤其是在资源管理上要附加许多协调操作—资源属于局部工作站,性能、可靠性对网络的依赖性强,安全保密——基础不好。用户掌握有许软件接口,相应的应用软件较少,需要大力开发。 、分布式互斥中集中式算法、分布式算法、令牌算法。分析一下其中那个算法比较实用,为什么????分? 集中式算法:集中式算法借鉴了集中式互斥算法的思想,在分布式系统

中,选出一个进程为协调者 ?通过科学的分析制定一套规则? 。协调者对所有的请求进行排队并根据一定的规则授予许可。协调者接受请求以后,检查临界区内的资源是否被其他进程占用。如果是,则它将当前请求进程插入到对应临界资源的请求队列中 否则,回复一个同意消息给请求进程,通知它可以访问该临界资源。该算法通俗易懂,既能够杜绝死锁、饥饿等现象发生,又能保证资源的互斥访问顺利进行。 但是它也有缺点,由于是集中式管理,所以一旦管理进程出现故障,则整个系统将处于瘫痪状态。因此,管理进程的性能完全决定了算法的效率,应用范围小,难以普及。 分布式算法:分布式算法中运用到广播请求通信,当进程想请求共享资源时,需要首先建立三个变量 准备进入临界区,实时时间和处理器号,并利用广播通信发送给正在运行的所有进程。该算法的核心思想如下 当进程想进入临界区时 要建立一个包括进入的临界区名字、处理器号和当前时间的消息 并把消息发送给所有其它进程。当进程接收到另一个进程的请求消息时 将分下面三种情况来区别对待 ?若接收者不在临界区中 也不想进入临界区 就向发送者发送 ?消息; ?若接收者已经在临界区内就不必回答 而是负责对请求消息排队; ?若接收者要进入临界区 但还没进入 它就会把接收的消息和它发送的消息的时间戳进行对比 取小的那个。如果接收的消息时间戳小 就发 ?消息 如果发送的消息时间戳小 那么接收者负责排列请求队列而不发送任何消息。当进程接收到允许消息时 它就进入临界区。从临界区退出时 向队列中的所有进程发送 ?消息 并将自己从队列中删除。该算法可以保证访问临界区的互斥性以及无死锁进程、无饥饿进程。但是这种算法有个严重的缺点是算法太复杂并且不健壮 任何一个进程崩溃都会影响到算法的正确性。二是令牌丢失 令牌算法:令牌算法中引入了令牌,所有的进程组成一个环模型,环中每个进程需要知道它的下一个位置的节点的名称。令牌在环上顺序传递,当

北京邮电大学操作系统实验 (2)

操作系统 班级:2011211302 学号:2011211168 姓名:康雅微 目录 实验5.1 进程通信观察实验 实验6.3 I/O系统编程实验 实验7.1 文件管理系统管理实验代码分析

实验5.1 观察实验 1、实验目的与内容 在Linux下,用ipcs()命令观察进程通信情况,了解Linux基本通信机制。 2、实验原理 Linux IPC继承了Unix System V及DSD等,共有6种机制:信号(signal)、管道(pipe 和命名管道(named piped)、消息队列(message queues)、共享内存(shared memory segments)、信号量(semaphore)、套接字(socket)。 本实验中用到的几种进程间通信方式: (1)共享内存段(shared memory segments)方式 –将2个进程的虚拟地址映射到同一内存物理地址,实现内存共享 –对共享内存的访问同步需由用户进程自身或其它IPC机制实现(如信号量) –用户空间内实现,访问速度最快。 –Linux利用shmid_ds结构描述所有的共享内存对象。 (2)信号量(semaphore)方式 –实现进程间的同步与互斥 –P/V操作,Signal/wait操作 –Linux利用semid_ds结构表示IPC信号量 (3)消息队列(message queues)方式 –消息组成的链表,进程可从中读写消息。 –Linux维护消息队列向量表msgque,向量表中的每个元素都有一个指向msqid_ds结构的指针,每个msqid_ds结构完整描述一个消息队列 LINUX系统提供的IPC函数有: ●msgget(关键字,方式):创建或打开一个消息队列 ●msgsnd(消息队列标志符,消息体指针,消息体大小,消息类型):向队列传递消息●msgrcv(消息队列标志符,消息体指针,消息体大小,消息类型):从队列中取消息●msgctl(消息队列标志符,获取/设置/删除,maqid_ds缓冲区指针):获取或设置某 个队列信息,或删除某消息队列 Linux系统中,内核,I/O任务,服务器进程和用户进程之间采用消息队列方式,许多微内核OS中,内核和各组件间的基本通信也采用消息队列方式.

北邮高级操作系统期末试卷

20仃,2015,2013北邮高级操作系统 试题 学号:姓名:成绩: 1、分布式操作系统中的透明性主要是什么?其中那些透明性容 易实现?哪些难实现?(20分) 难点: 1、创建一个分布式数据库系统可提供有效的存取手段来操纵这些结点上的子数据库。 2、不确定性,控制比较复杂,尤其是在资源管理上要附加许多协调操作一资源 属于局部工作站,性能、可靠性对网络的依赖性强,安全保密一一基础不好。用户掌握有许软件接口,相应的应用软件较少,需要大力开发。 2、分布式互斥中集中式算法、分布式算法、令牌算法。分析一下其 中那个算法比较实用,为什么?(20分) 集中式算法:集中式算法借鉴了集中式互斥算法的思想,在分布式系统中,选出一个进程为协调者(通过科学的分析制定一套规则)。协调者对所有的请求进行排队并根据一定的规则授予许可。协调者接受请求以后,检查临界区内的资源是否被其他进程占用。如果是,则它将当前请求进程插入到对应临界资源的请求队列中;否则,回复一个同意消息给请求进程,通知它可以访问该临界资源。该算法通俗易懂,既能够杜绝死锁、饥饿等现象发生,又能保证资源的互斥访问顺利进行。 但是它也有缺点,由于是集中式管理,所以一旦管理进程出现故障,则整个系统将处于 瘫痪状态。因此,管理进程的性能完全决定了算法的效率,应用范围小,难以普及。

分布式算法:分布式算法中运用到广播请求通信,当进程想请求共享资源时,需要首先建立三个变量:准备进入临界区,实时时间和处理器号,并利用广播通信发送给正在运行的所有进程。该算法的核心思想如下:当进程想进入临界区时,要建立一个包括进入的临界区名字、处理器号和当前时间的消息,并把消息发送给所有其它进程。当进程接收到另一个进程的请求消息时,将分下面三种情况来区别对待:1)若接收者不在临界区中,也不想进入临界区,就向发送者发送0K消息;2)若接收者已经在临界区内就不必回答,而是负责对请求消息排队;3)若接收者要进入临界区,但还没进入,它就会把接收的消息和它发送的消息的时间戳进行对比,取小的那个。如果接收的消息时间戳小,就发0K消息,如果发送的消息时间戳小,那么接收者负责排列请求队列而不发送任何消息。当进程接收到允许消息时,它就进入临界区。从临界区退出时,向队列中的所有进程发送0K消息,并将自己从队列中删除。该算法可以保证访问临界区 的互斥性以及无死锁进程、无饥饿进程。但是这种算法有个严重的缺点是算法太 二是令牌丢失 复杂并且不健壮,任何一个进程崩溃都会影响到算法的正确性。 令牌算法:令牌算法中引入了令牌,所有的进程组成一个环模型,环中每个进程需要知道它的下一个位置的节点的名称。令牌在环上顺序传递,当某个进程拥有令牌时就表明可以访问临界区。当请求进程没有令牌时,算法需要N发送任何消息。如果得到令牌的进程不打算进入临界区,它只是简单地将令牌传送给它后面的进程。当每个进程都需要进入临界区时,令牌在环上的传递速度最慢;相反,当没有进程想要进入临界区时,令牌在环上的传递速度最快。 (该算法的正确性是显而易见的,但是也存在一些问题,比如说,当令牌丢失时,需要重新生成。可是如何检测令牌丢失又是一个困难的问题。还有,如果环中的一个进程崩溃,那么环 的连贯性就遭到破坏,算法也就会出现麻烦。) 综上所述,基于令牌的算法在排除了令牌丢失和进程故障等问题之后,在今后的分布式系统中,能有更好的应用。

2016北邮高级语言程序设计作业

第一阶段作业 一、多项选择题(共1道小题,共10.0分) 1.windows 下安装Java开发工具包时需要配置路径修改的 变量名为____ A.Classpath B.Path C.TEMP D.windir 知识 第一单元过关习题 点: 学生答 [A;B;] 案: 试题分 10.0 得分:[10] 值: 提示:多选题

二、单项选择题(共9道小题,共90.0分) 1.利用Java开发工具包编译和运行Java程序需要用到哪两 个命令____ A.java、javac B.java、java C.javac、javadoc D.javadoc、java 知识 第一单元过关习题 点: 学生答 [A;] 案: 试题分 10.0 得分:[10] 值: 提示: 2.(错误)用Java虚拟机执行类名为Hello的应用程序的正确 命令是____ A.java Hello.class B.Hello.class

C.java Hello.java D.java Hello 知识 第一单元过关习题 点: 学生答 [C;] 案: 试题分 10.0 得分:[0] 值: 提示: 3.编译一个Java程序Hello.java的正确命令形式是____ A.javac Hello B.Javac Hello C.javac Hello.java D.javac.hello 知识 第一单元过关习题 点:

[C;] 案: 试题分 10.0 得分:[10] 值: 提示: 4.只包含一个带public方法的Java类Abc的java程序的正确命名是____ A.Abc B.Abc.java C.abc.java D.一个任意的标识符后带后缀.java 知识 第一单元过关习题 点: 学生答 [B;] 案: 试题分 得分:[10] 10.0 值:

操作系统—实验三

操作系统—实验三 (一)实验目的 进一步理解、使用和掌握文件的系统调用、文件的标准子例程,能利用和选择这些基本的文件操作完成复杂的文件处理工作。 (二)源代码 1.编写一个文件复制的C语言程序: 分别使用文件的系统调用read(fd, buf, nbytes), write(fd, buf, nbytes)和文件的库函数fread(buf, size, nitems, fp), fwrite(buf, size, nitems, fp),编写一个文件的复制程序。 #include #include #include /*copy file , if way ==1, use read/write, else use fread/fwrite, at the same time, it counts time consumed*/ int mycopy(int way, int step) { time_t start_tm, stop_tm; FILE *srcf,*destf; char buff[1024]; int i, sfd,dfd; time(&start_tm); //get start time for (i=0;i<1024;i=i+step) { if(way==1) { sfd= open("in.txt",O_RDONLY,0644); df d=o pen("out.txt",O_WRONLY|O_CREAT|O_TRUNC,0644); read(sfd, buff, step); write(dfd, buff, step); close(sfd); close(dfd); } else { srcf = fopen("in.txt","r"); destf = fopen("out.txt","w"); fread(buff, step*sizeof (char), 1, srcf); fwrite(buff, step*sizeof(char), 1, destf);

计算机操作系统考研讲义(7)

第七章操作系统结构和程序设计 7.1 操作系统的编程概念 1、操作系统编程的发展 在九十年代以前,程序员的精力集中于完成任务的过程,而不是用户与该过程的交互方式,过去评价一个软件的好坏往往是注意源程序的短小精悍和执行的快速性。快速的、清晰的编程是许多程序员努力要达到的理想境界。Windows操作系统将用户与计算机的交互方式的设计(即人机界面设计)放到了非常重要的位置。同时,Windows为不同形式的高层次交互提供了相应的机制:应用程序之间、操作系统和应用程序之间、公共的共享代码库和数据库之间。 2、编程语言简史 (1)机器语言:以二进制代码“0”、“1”组成的机器指令集合; (2)汇编(Assembler)语言:以助记符表示机器指令功能,例如,JOVIAL、forth; (3)高级语言:接近人类语言(英语)和数学语言的计算机语言,例如,BASIC、FORTRAN、Pascal、C、FoxBASE、ORACLE等; (4)进程(Process)概念:例如,UNIX Shell、TCL、PERL和Marvel等; (5)面向对象的语言:例如C++、Visual BASIC、java等; (6)新范例计算机语言:例如ML、Smalltalk、Eiffel等; 3、不同应用领域的计算机语言 (1)科学研究:

例如:FORTRAN、ALGOL、BASIC、APL、Pascal、C、C++、AUTOCAD等; (2)商业: 例如:COBOL、C、PL/I、4GLs、和spreadsheet等; (3)系统: 例如:Assembler、JOVIAL、Forth、C、C++、Ada、java等; (4)出版: 例如:TeX、Postscript、word、WPS、和processing等; (5)人工智能(AI,artificial intelligence): 例如:LISP、SNOBOL和Prolog等。 7.2 结构设计的目标 计算机操作系统一般都有两种运行状态,即用户态(user mode)和核心态(kernel mode)。计算机操作系统的结构设计一般包括内结构和外结构两种结构。传统操作系统内结构是指内部程序模块的层次结构,每一层由若干数量不等的程序模块组成。例如,早期的UNIX操作系统版本,如图7-1所示。

北邮-大三-操作系统-进程管理实验报告

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

北邮操作系统进程同步实验报告及源代码

进程管理实验报告 1实验目的: (1)理解进程/线程同步的方法,学会运用进程/线程同步的方法解决实际问题; (2)了解windows系统或unix/linux系统下中信号量的使用方法。 2.实验内容 编写一个有关生产者和消费者的程序:每个生产者每次生产一个产品存入仓库,每个消费者每次从仓库中取出一个产品进行消费,仓库大小有限,每次只能有一个生产者或消费者访问仓库。要求:采用信号量机制。 3、环境说明 本实验是在win7环境下使用dev编译器实现的,采用Win API的信号量机制。 4、程序设计说明 该程序根据教材中的消费者生产者问题编写的,使用了教材中提供的框架思 路以及库函数,使用CreateThread建立新的线程,使用CreateMutex创建一 个互斥信号量,使用CreateSemaphore创建信号量,使用ReleaseMutex释放 线程的互斥信号量,使用ReleaseSemaphore寸指定的信号量增加指定的值, 使用WaitForSingleObject等待空位,使用CloseHandle在操作结束后关闭线程 和信号量。 在这个程序里我设计了三个函数: Int main ()是主函数,其中包含了缓冲区大小的设置,生产者消费者发出请求等内容以及线程创建等内容 DWORD WINA PI P roducer(L PVOID IpP a是生产者等待缓冲区的使用权并对缓冲区进行操作 DWORD WINA PI co nsumer(L PVOIDI pP ara)是消费者等待缓冲区的使用权并对缓冲区进行操作 该程序模拟生产者消费者问题,首先要设置缓冲区的大小,输入请求资源的各个进程的信息以及请求时间,并且按照请求时间对各进程进行排序,创建线程, 然后按序依次对缓冲区进行操作,详细设计见源代码。

北邮网络-操作系统原理-阶段作业二

一、多项选择题(共10道小题,共100.0分) 1. 关于银行家算法,下面的说法哪些是对的? A. 银行家算法是用来检查系统中是否有死锁发生的算法 B. 银行家算法是系统用来分配资源的算法 C. 银行家算法可以预防死锁的发生 D. 银行家算法并不干预系统分配资源 2. 采用预先静态资源分配法,主要是打破了哪些死锁条件? A. 互斥条件 B. 不可抢占条件 C. 部分分配条件 D. 循环等待条件 3. 一个作业的进程处于阻塞状态,这时该作业处于什么状态? A. 提交状态 B. 后备状态 C. 运行状态 D. 完成状态

4. 在短期繁重负载下,应将哪个进程暂时挂起的问题是由()调度程序负责 A. 长期 B. 中期 C. 短期 D. 都不是 5. 多处理器系统分类中,对称式多处理器系统符合哪些特征? A. 紧密耦合 B. 共享内存 C. 在一台处理器上执行操作系统,其他处理器执行应用进程 D. 各个处理器的地位都完全相同 6. 现在的进程通信通常是采用间接通信方式。在这种方式中,端口代表什么 意义? A. 计算机终端在网络中的位置 B. 计算机中的不同的网卡 C. 服务器 D. 进程

7. 信号量机制可以总结为三个要素,应该是哪些? A. 一个整型变量 B. 原语 C. Wait操作 D. Signal操作 8. 在下列的互斥方法中,不能用于多处理器系统的的方法有: A. 软件互斥方法 B. 中断屏蔽方式 C. 硬件指令方式 D. 信号量机制 9. 一个信号量被定义为一个() A. 字符 B. 整数 C. 任意型变量 D. 整型变量

10. “异步事件能按照要求的时序进行,以达到合作进程间协调一致的工作” 既是所谓()。 A. 互斥 B. 并行性 C. 同步 D. 临界段 11.

北邮高级操作系统期末试卷

北邮高级操作系统期末 试卷 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

2017,2015,2013北邮高级操作系统试题学号:姓名:成绩: 1、分布式操作系统中的透明性主要是什么?其中那些透明性容易实现?哪些 难实现?(20分) 难点: 1、创建一个分布式数据库系统可提供有效的存取手段来操纵这些结点上的子 数据库。 2、不确定性,控制比较复杂,尤其是在资源管理上要附加许多协调操作—资 源属于局部工作站,性能、可靠性对网络的依赖性强,安全保密——基础不好。用户掌握有许软件接口,相应的应用软件较少,需要大力开发。 2、分布式互斥中集中式算法、分布式算法、令牌算法。分析一下其中那个算法比较实用,为什么?(20分) 集中式算法:集中式算法借鉴了集中式互斥算法的思想,在分布式系统中,选出一个进程为协调者 (通过科学的分析制定一套规则) 。协调者对所有的请求进行排队并根据一定的规则授予许可。协调者接受请求以后,检查临界区内的资源是否被其他进程占用。如果是,则它将当前请求进程插入到对应临界资源的请求队列中; 否则,回复一个同意消息给请求进程,通知它可以

访问该临界资源。该算法通俗易懂,既能够杜绝死锁、饥饿等现象发生,又 能保证资源的互斥访问顺利进行。 但是它也有缺点,由于是集中式管理,所以一旦管理进程出现故障,则整个 系统将处于瘫痪状态。因此,管理进程的性能完全决定了算法的效率,应用 范围小,难以普及。 分布式算法:分布式算法中运用到广播请求通信,当进程想请求共享资源 时,需要首先建立三个变量: 准备进入临界区,实时时间和处理器号,并利 用广播通信发送给正在运行的所有进程。该算法的核心思想如下:当进程想进入临界区时,要建立一个包括进入的临界区名字、处理器号和当前时间的消息,并把消息发送给所有其它进程。当进程接收到另一个进程的请求消息时,将分下面三种情况来区别对待:1)若接收者不在临界区中,也不想进入临界区,就向发送者发送OK消息;2)若接收者已经在临界区内就不必回答,而是负责对请 求消息排队;3)若接收者要进入临界区,但还没进入,它就会把接收的消息和 它发送的消息的时间戳进行对比,取小的那个。如果接收的消息时间戳小,就 发OK消息,如果发送的消息时间戳小,那么接收者负责排列请求队列而不发送任何消息。当进程接收到允许消息时,它就进入临界区。从临界区退出时,向 队列中的所有进程发送OK消息,并将自己从队列中删除。该算法可以保证访 问临界区的互斥性以及无死锁进程、无饥饿进程。但是这种算法有个严重的 缺点是算法太复杂并且不健壮,任何一个进程崩溃都会影响到算法的正确性。二是令牌丢失 令牌算法:令牌算法中引入了令牌,所有的进程组成一个环模型,环中每个 进程需要知道它的下一个位置的节点的名称。令牌在环上顺序传递,当某个

相关文档
最新文档