兰州大学操作系统重点

合集下载

兰州大学操作系统实验十报告

兰州大学操作系统实验十报告

兰州⼤学操作系统实验⼗报告实验要求:1.分别以root和普通⽤户⾝份登录并进⼊各⾃的主⽬录,通过命令报告你的当前路径。

2.在⼀个⽬录下执⾏ls命令,验证-l,-a,-i选项的作⽤,什么时候会列出”.”和”..”⽬录?设计⼀个关于使⽤命令的实验,验证这两个⽬录的含义和作⽤。

3.创建⼀个⽬录,并在其中创建⼏个⽂件,分别⽤rm和rmdir删除⽬录,观察有何不同。

4.以root⾝份创建⼀个新⽂件,观察其默认的权限;然后⽤vi编辑该⽂件;将该⽂件权限改为只有⽤户可读,其他权限均⽆;以root⾝份创建⼀个脚本,该脚本使⽤cat命令在屏幕上显⽰前⾯创建⽂件的内容;将脚本⽂件按设置为所有⽤户可执⾏;分别以root 和普通⽤户⾝份登录,执⾏脚本,观察结果;为cat⽂件加SUID权限,再重复前⼀步操作,观察结果,说明原因。

5.为⼀个已经存在的⽂件分别创建多个硬链接和多个符号链接,观察⼆者的不同,删除链接时⼜有何不同?为什么?6.报告你当前使⽤的系统已经挂载了那些⽂件系统,挂载点、⽂件系统类型和对应设备⽂件以及设备和分区分别是什么?硬盘的当前使⽤情况(数据及索引节点)。

1.2.-a 列出⽬录下的所有⽂件,包括以 . 开头的隐含⽂件。

//常⽤ -l 列出⽂件的详细信息。

-i 输出⽂件的 i 节点的索引信息。

在ls -a 时会出现“.”“..”的⽬录。

实验验证:3.区别:rm 只能删除⽂件rmdir可以删除⽬录4.SUID权限:运⾏程序时将进程的⽤户ID设置为⽂件所有者的⽤户ID。

5.(1)软链接可以跨越⽂件系统,硬链接不可以。

(2)硬链接不管有多少个,都指向的是同⼀个索引节点,会把结点连接数增加,只要结点的链接数不是0,⽂件就⼀直存在,不管你删除的是源⽂件还是链接的⽂件。

只要有⼀个存在,⽂件就存在(其实也不分什么源⽂件和链接⽂件的,因为他们指向都是同⼀个索引节点的)。

当你修改源⽂件或者链接⽂件任何⼀个的时候,其他的⽂件都会做同步的修改。

兰州大学《操作系统》15秋在线作业1满分答案

兰州大学《操作系统》15秋在线作业1满分答案

兰州大学《操作系统》15秋在线作业1满分答案一、单选题(共10 道试题,共40 分。

)1. 文件代表了计算机系统中的()。

A. 硬件B. 软件C. 软件资源D. 硬件资源正确答案:C2. 在文件系统中,()的逻辑文件中记录顺序与物理文件中占用物理块顺序一致。

A. Hash文件B. 顺序文件C. 索引文件D. 链接文件正确答案:B3. 批处理系统的主要缺点是()。

A. CPU的利用率不高B. 失去了交互性C. 不具备并行性D. 以上都不是正确答案:B4. 操作系统程序结构的主要特点是( )。

A. 一个程序模块B. 分层结构C. 层次模块化D. 子程序结构正确答案:C5. ()进程调度算法最适合分时操作系统采用。

A. 先来先服务B. 最高优先级C. 时间片轮转D. 随机数正确答案:C6. 用户在自己的用户终端上连续键入组成作业的若干命令,无需等待一条命令是否执行完毕。

所键入的命令形成了一道命令串,存储在一个系统缓冲区中,由操作系统自动地对这些命令逐步提取并解释执行,最后向用户提供处理结果。

在这样的多用户、多作业、多命令串的系统中,前后台作业的执行调度()。

A. 全由操作系统自动完成,无需用户干预B. 由用户干预完成C. 由系统和用户干预结合完成D. 全由用户完成正确答案:A7. 通道是一种()。

A. 保存I/O信息的部件B. 传输信息的电子线路C. 通用处理机D. 专用处理机正确答案:D8. 按照PV操作的定义正确的说法是()。

A. 调用P操作后进程肯定能继续运行B. 调用P操作后进程肯定阻塞C. 调用P操作后进程可能继续运行或阻塞D. 调用V操作后可能会阻塞正确答案:C9. 磁盘与主机之间传递数据是以()为单位进行的。

A. 字节B. 字C. 数据块D. 文件正确答案:C10. 物理文件的组织形式是与()无关的。

A. 文件长度B. 文件的存取方法C. 存储介质特性D. 文件系统采用的管理方式正确答案:A《操作系统》15秋在线作业1二、多选题(共5 道试题,共20 分。

兰州大学操作系统实验七存储管理题目与答案.doc

兰州大学操作系统实验七存储管理题目与答案.doc

兰州大学操作系统实验七存储管理题目与答案实验七实验报告实验名称7 存储管理实验目的 1. 观察系统存储器使用情况 2. 观察进程使用存储器的情况 3. 掌握通过内存映像文件提高性能的方法 4. 掌握动态内存分配技术实验时间3学时预备知识 1. 存储相关的命令free 显示系统使用和未被使用的内存数量(可以实时执行)输出包含的标题有 3 行信息Mem。

此行包含了有关物理内存的信息。

包括以下详细内容total。

该项显示可用的物理内存总量,单位为KB。

该数字小于安装的物理内存的容量,是因为内核本身也要使用一小部分的内存。

used。

该项显示了用于应用程序超速缓存数据的内存容量。

free。

该项显示了此时未使用且有效的内存容量。

Shared/buffers 缓冲区/cached。

这些列显示了有关内存如何使用的更为详细的信息。

-/ buffers/cache。

Linux 系统中的部分内存用来为应用程序或设备高速缓存数据。

这部分内存在需要用于其他目的时可以释放。

free 列显示了调整的缓冲区行,显示释放缓冲区或高速缓存时可以使用的内存容量。

Swap。

该行显示有关交换内存利用率的信息。

该信息包含全部、已使用和释放的可用内存容量。

vmstat 报告进程、内存、分页、IO等多类信息(使用手册页)size 列出目标文件段大小和总大小(使用手册页)2. /proc文件系统(使用手册页man 5 proc)/proc/meminfo 内存状态信息/proc/stat 包含内存页、内存对换等信息。

/proc/pid/stat 某个进程的信息包含内存使用信息/proc/pid/maps某个进程的内存映射区信息,包括地址范围、权限、偏移量以及主次设备号和映射文件的索引节点。

/proc/pid/statm 某个进程的内存使用信息,包括内存总大小、驻留集大小、共享页面数、文本页面数、堆栈页面数和脏页面数。

3. 内存映像文件内存映像文件是指把一个磁盘文件映像到内存中,二者存在逐字节的对应关系。

操作系统重点

操作系统重点

操作系统重点操作系统是计算机系统中最重要的系统软件之一,承担着管理计算机硬件资源和提供用户与系统之间的接口的任务。

它负责调度程序、管理内存、控制输入输出和文件系统等重要功能,对计算机的性能和稳定性起着至关重要的作用。

本文将重点介绍操作系统的几个关键概念和功能。

一、进程管理进程是指正在运行中的程序,是操作系统分配资源和执行任务的基本单位。

进程管理是操作系统的核心功能之一。

它包括进程的创建、调度、切换和终止等操作。

操作系统通过进程管理实现多任务的并发执行,提高系统资源利用率和程序执行效率。

1. 进程控制块(Process Control Block, PCB)PCB是操作系统中用于管理进程的数据结构。

它包含进程的标识信息、程序计数器、寄存器状态、优先级等重要信息。

操作系统通过PCB来跟踪和管理进程的状态和执行情况。

2. 进程调度算法进程调度算法决定了进程之间的切换顺序和优先级,以及如何分配CPU的时间片。

常见的进程调度算法有先来先服务调度(First-Come, First-Served,FCFS)、短作业优先调度(Shortest Job Next, SJN)、轮转调度(Round Robin, RR)等。

不同的调度算法适用于不同的应用场景和任务特性。

3. 进程同步与通信多个进程之间需要通过进程同步和通信来实现数据共享和协作。

常见的进程同步机制包括互斥锁、信号量和条件变量等。

进程通信可通过共享内存、管道、消息队列和套接字等方式实现。

二、内存管理内存管理是操作系统管理计算机内存资源的重要功能。

它负责将进程的代码和数据加载到内存中,并为其分配足够的内存空间。

内存管理还负责内存的分页和分段、虚拟内存的管理以及内存的回收和释放等操作。

1. 内存分页和分段内存分页和分段是操作系统中常用的内存管理技术。

分页将内存划分为固定大小的页面,而分段则将其划分为逻辑上相关的段。

通过分页和分段,操作系统可以更高效地管理内存、实现内存保护和隔离。

兰州大学操作系统实验五进程管理题目和答案

兰州大学操作系统实验五进程管理题目和答案

实验五实验五实验名称:进程管理实验目的:1.进一步学习进程的属性2.学习进程管理的系统调用3.掌握使用系统调用获取进程的属性、创建进程、实现进程控制等4.掌握进程管理的基本原理实验时间pcb6学时预备知识:1.进程属性1.1 getpid(取得进程ID)表头文件#include<unistd.h>定义函数pid_t getpid(void);函数说明getpid()用来取得目前进程的进程ID,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。

返回值目前进程的进程ID范例1.2 getppid(取得父进程的进程ID)表头文件#include<unistd.h>定义函数pid_t getppid(void);函数说明getppid()用来取得目前进程的父进程ID。

返回值目前进程的父进程ID。

1.3 getegid(取得有效的组ID)/etc/shadow 存放用户口令信息,主人是root表头文件#include<unistd.h> 默认是只读,当然可以修改自己的这个权限#include<sys/types.h> 其他用户可以通过申请,修改自己的这些定义函数gid_t getegid(void); ls -l /usr/bin/passwd函数说明getegid()用来取得执行目前进程有效(effective)组ID。

有效的组ID用来决定进程执行时组的权限。

返回值返回有效的组ID。

Group 组1.4 geteuid(取得有效的用户ID)表头文件#include<unistd.h>#include<sys/types.h>定义函数uid_t geteuid(void)函数说明geteuid()用来取得执行目前进程有效的用户ID。

有效的用户ID用来决定进程执行的权限,借由此改变此值,进程可以获得额外的权限。

倘若执行文件的setID位已被设置,该文件执行时,其进程的euid值便会设成该文件所有者的uid。

兰州大学操作系统 实验四

兰州大学操作系统 实验四

实验要求:1.列出你的系统中当前运行的所有进程ps ax,并解释bash进程的各项信息的含义(不包括RSS和SHR)。

2.分别从至少三个虚拟终端登录ctrl+alt+f1或者+f2或者+f3,以树状形式列出你的系统中当前运行的所有进程及其PID。

找出你当前运行进程的所有祖先进程,并说明其各自的作用。

分析Linux系统中的进程的家族关系。

Ctrl+alt+f1init(1)-+-NetworkManager(663)-+-dhclient(829)| |-dnsmasq(1120)| |-{NetworkManager}(697)| `-{NetworkManager}(832)|-accounts-daemon(1291)---{accounts-daemon}(1299) |-acpid(1092)|-anacron(1091)|-aptd(2550)|-atd(1097)|-avahi-daemon(679)---avahi-daemon(688)|-bamfdaemon(2302)-+-{bamfdaemon}(2303)| `-{bamfdaemon}(2304)|-bluetoothd(631)|-colord(723)-+-{colord}(757)| `-{colord}(1043)|-console-kit-dae(1346)-+-{console-kit-dae}(1355)| |-{console-kit-dae}(1356) | |-{console-kit-dae}(1357) | |-{console-kit-dae}(1358) | |-{console-kit-dae}(1359) | |-{console-kit-dae}(1360) | |-{console-kit-dae}(1362) | |-{console-kit-dae}(1363) | |-{console-kit-dae}(1364) | |-{console-kit-dae}(1365) | |-{console-kit-dae}(1366)| |-{console-kit-dae}(1368) | |-{console-kit-dae}(1369) | |-{console-kit-dae}(1370) | |-{console-kit-dae}(1371) | |-{console-kit-dae}(1372) | |-{console-kit-dae}(1373) | |-{console-kit-dae}(1374) | |-{console-kit-dae}(1375) | |-{console-kit-dae}(1376) | |-{console-kit-dae}(1377) | |-{console-kit-dae}(1378) | |-{console-kit-dae}(1379) | |-{console-kit-dae}(1380) | |-{console-kit-dae}(1381) | |-{console-kit-dae}(1382) | |-{console-kit-dae}(1383) | |-{console-kit-dae}(1384) | |-{console-kit-dae}(1385) | |-{console-kit-dae}(1386) | |-{console-kit-dae}(1387) | |-{console-kit-dae}(1388)| |-{console-kit-dae}(1390) | |-{console-kit-dae}(1391) | |-{console-kit-dae}(1392) | |-{console-kit-dae}(1393) | |-{console-kit-dae}(1394) | |-{console-kit-dae}(1395) | |-{console-kit-dae}(1396) | |-{console-kit-dae}(1397) | |-{console-kit-dae}(1398) | |-{console-kit-dae}(1399) | |-{console-kit-dae}(1400) | |-{console-kit-dae}(1401) | |-{console-kit-dae}(1402) | |-{console-kit-dae}(1403) | |-{console-kit-dae}(1404) | |-{console-kit-dae}(1406) | |-{console-kit-dae}(1407) | |-{console-kit-dae}(1408) | |-{console-kit-dae}(1409) | |-{console-kit-dae}(1410) | |-{console-kit-dae}(1411)| |-{console-kit-dae}(1413)| |-{console-kit-dae}(1414)| |-{console-kit-dae}(1415)| |-{console-kit-dae}(1416)| |-{console-kit-dae}(1421)| |-{console-kit-dae}(1423)| |-{console-kit-dae}(2526)|`-{console-kit-dae}$k\267(1353)|-cron(1096)|-cupsd(690)|-dbus-daemon(585)|-dbus-daemon(2167)|-dbus-launch(2162)|-gconfd-2(2177)|-geoclue-master(2381)|-getty(1045)|-getty(1053)|-getty(1067)|-getty(1072)|-getty(1082)|-gnome-keyring-d(2111)-+-{gnome-keyring-d}(2112) | |-{gnome-keyring-d}(2191) | |-{gnome-keyring-d}(2193) | |-{gnome-keyring-d}(2195) | `-{gnome-keyring-d}(2398) |-gnome-terminal(2459)-+-bash(2469)| |-gnome-pty-helpe(2468)| |-{gnome-terminal}(2462) | |-{gnome-terminal}(2463) | `-{gnome-terminal}(2470) |-goa-daemon(2423)---{goa-daemon}(2426)|-gvfs-afc-volume(2267)---{gvfs-afc-volume}(2268)|-gvfs-fuse-daemo(2209)-+-{gvfs-fuse-daemo}(2212)| |-{gvfs-fuse-daemo}(2213) | `-{gvfs-fuse-daemo}(2214) |-gvfs-gdu-volume(2245)|-gvfs-gphoto2-vo(2270)|-gvfsd(2206)|-gvfsd-burn(2291)|-gvfsd-metadata(2300)|-gvfsd-trash(2277)|-hud-service(2338)-+-{hud-service}(2341)| `-{hud-service}(2342)|-ibus-x11(2166)-+-{ibus-x11}(2172)| `-{ibus-x11}(2178)|-indicator-appli(2360)---{indicator-appli}$k\267(2372)|-indicator-datet(2358)-+-{indicator-datet}(2370)| `-{indicator-datet}(2373)|-indicator-messa(2356)---{indicator-messa}$k\267(2385)|-indicator-print(2354)-+-{indicator-print}(2377)|`-{indicator-print}$k\267(2376)|-indicator-sessi(2363)-+-{indicator-sessi}(2393)|`-{indicator-sessi}$k\267(2386)|-indicator-sound(2362)-+-{indicator-sound}(2371)| `-{indicator-sound}(2397)|-irqbalance(1109)|-lightdm(1141)-+-Xorg(1174)||-lightdm(1640)-+-gnome-session(2122)-+-bluetooth-apple(2230)-+ -{bluetooth-apple}(2246)| | | | `-{bluetooth-apple}$k\267(2241)| | | |-compiz(2216)-+-sh(2331)---gtk-window-deco(2332)-+-{gtk-windo w-deco}+| | | | | `-{gtk-window-deco}+| | | | |-{compiz}(2217)| | | | |-{compiz}(2283)| | | | `-{compiz}(2284)| | | |-deja-dup-monito(2704)-+-{deja-dup-monito}(2706)| | | | `-{deja-dup-monito}(2708)| | | |-gdu-notificatio(2406)-+-{gdu-notificatio}(2407)| | | | `-{gdu-notificatio}(2408)| | | |-gnome-fallback-(2219)-+-{gnome-fallback-}(2223)| | | | `-{gnome-fallback-}(2228)| | | |-gnome-screensav(2428)-+-{gnome-screensav}(2434)| | | | `-{gnome-screensav}(2437)| | | |-gnome-settings-(2190)-+-{gnome-settings-}(2197)| | | | `-{gnome-settings-}$k\267(2196) | | | |-ibus-daemon(2151)-+-ibus-engine-sun(2179)---{ibus-engine-sun}( 2181)| | | | |-ibus-gconf(2160)---{ibus-gconf}(2169) | | | | |-python(2164)-+-{python}(2183)| | | | | `-{python}(2185)| | | | |-{ibus-daemon}(2163)| | || `-{ibus-daemon}(2170)| | | |-nautilus(2221)-+-{nautilus}(2235)| | | | `-{nautilus}(2240)| | | |-nm-applet(2225)-+-{nm-applet}(2233)| | | | `-{nm-applet}(2237)| | | |-polkit-gnome-au(2220)-+-{polkit-gnome-au}(2229)| | | | `-{polkit-gnome-au}$k\267(2226) | | | |-ssh-agent(2158)| | | |-telepathy-indic(2410)-+-{telepathy-indic}(2413)| | | | `-{telepathy-indic}$k\267(2412)| | | |-update-notifier(2530)-+-{update-notifier}(2531)| | || `-{update-notifier}(2532)| | | |-zeitgeist-datah(2429)---{zeitgeist-datah}$k\267(2433)| | | |-{gnome-session}(2174)| | | |-{gnome-session}(2175)| | | `-{gnome-session}(2182)| | `-{lightdm}(2098)| |-{lightdm}(1165)| `-{lightdm}(1175)|-login(1478)---bash(2835)---pstree(2954)|-mission-control(2418)-+-{mission-control}(2424)|`-{mission-control}$k\267(2421)|-modem-manager(627)|-notify-osd(2199)-+-{notify-osd}(2203)| `-{notify-osd}(2204)|-polkitd(705)---{polkitd}(716)|-pulseaudio(2239)-+-gconf-helper(2257)| |-{pulseaudio}(2249)| `-{pulseaudio}(2254)|-rsyslogd(667)-+-{rsyslogd}(674)| |-{rsyslogd}(685)| `-{rsyslogd}(686)|-rtkit-daemon(1763)-+-{rtkit-daemon}(1776)| `-{rtkit-daemon}(1777)|-system-service-(2541)|-tpvmlp(1058)|-ubuntu-geoip-pr(2395)|-udevd(381)-+-udevd(1556)| `-udevd(1557)|-udisks-daemon(2250)-+-udisks-daemon(2253)| `-{udisks-daemon}(2256)|-unity-panel-ser(2336)-+-{unity-panel-ser}(2340)|`-{unity-panel-ser}$k\267(2339)|-upowerd(1520)-+-{upowerd}(1531)| `-{upowerd}(1536)|-upstart-socket-(1006)|-upstart-udev-br(377)|-vmtoolsd(2054)---{vmtoolsd}(2075)|-vmtoolsd(2231)-+-{vmtoolsd}(2309)| `-{vmtoolsd}(2310)|-vmware-vmblock-(2036)-+-{vmware-vmblock-}(2039)|`-{vmware-vmblock-}$k\267(2037)|-whoopsie(1101)---{whoopsie}(1129)|-zeitgeist-daemo(2436)---{zeitgeist-daemo}(2438)`-zeitgeist-fts(2443)-+-cat(2451)`-{zeitgeist-fts}(2450)Ctrl+alt+f2init(1)-+-NetworkManager(663)-+-dhclient(829)| |-dnsmasq(1120)| |-{NetworkManager}(697)| `-{NetworkManager}(832)|-accounts-daemon(1291)---{accounts-daemon}(1299)|-acpid(1092)|-atd(1097)|-avahi-daemon(679)---avahi-daemon(688)|-bamfdaemon(2302)-+-{bamfdaemon}(2303)| `-{bamfdaemon}(2304)|-bluetoothd(631)|-colord(723)-+-{colord}(757)| `-{colord}(1043)|-console-kit-dae(1346)-+-{console-kit-dae}(1356)| |-{console-kit-dae}(1357) | |-{console-kit-dae}(1358) | |-{console-kit-dae}(1359) | |-{console-kit-dae}(1360) | |-{console-kit-dae}(1362) | |-{console-kit-dae}(1363) | |-{console-kit-dae}(1364) | |-{console-kit-dae}(1365) | |-{console-kit-dae}(1366) | |-{console-kit-dae}(1367) | |-{console-kit-dae}(1368) | |-{console-kit-dae}(1369) | |-{console-kit-dae}(1370) | |-{console-kit-dae}(1371) | |-{console-kit-dae}(1372) | |-{console-kit-dae}(1373) | |-{console-kit-dae}(1374) | |-{console-kit-dae}(1375) | |-{console-kit-dae}(1376) | |-{console-kit-dae}(1377) | |-{console-kit-dae}(1378)| |-{console-kit-dae}(1380) | |-{console-kit-dae}(1381) | |-{console-kit-dae}(1382) | |-{console-kit-dae}(1383) | |-{console-kit-dae}(1384) | |-{console-kit-dae}(1385) | |-{console-kit-dae}(1386) | |-{console-kit-dae}(1387) | |-{console-kit-dae}(1388) | |-{console-kit-dae}(1389) | |-{console-kit-dae}(1390) | |-{console-kit-dae}(1391) | |-{console-kit-dae}(1392) | |-{console-kit-dae}(1393) | |-{console-kit-dae}(1394) | |-{console-kit-dae}(1395) | |-{console-kit-dae}(1396) | |-{console-kit-dae}(1397) | |-{console-kit-dae}(1398) | |-{console-kit-dae}(1399) | |-{console-kit-dae}(1400)| |-{console-kit-dae}(1402)| |-{console-kit-dae}(1403)| |-{console-kit-dae}(1404)| |-{console-kit-dae}(1406)| |-{console-kit-dae}(1407)| |-{console-kit-dae}(1408)| |-{console-kit-dae}(1409)| |-{console-kit-dae}(1410)| |-{console-kit-dae}(1411)| |-{console-kit-dae}(1412)| |-{console-kit-dae}(1413)| |-{console-kit-dae}(1414)| |-{console-kit-dae}(1415)| |-{console-kit-dae}(1416)| |-{console-kit-dae}(1421)| |-{console-kit-dae}(1423)| |-{console-kit-dae}(2955)| |-{console-kit-dae}(3199)|`-{console-kit-dae}tv\267(1353)|-cron(1096)|-cupsd(690)|-dbus-daemon(585)|-dbus-daemon(2167)|-dbus-launch(2162)|-dconf-service(3045)-+-{dconf-service}(3046)| `-{dconf-service}(3048)|-gconfd-2(2177)|-geoclue-master(2381)|-getty(1045)|-getty(1053)|-getty(1072)|-getty(1082)|-gnome-keyring-d(2111)-+-{gnome-keyring-d}(2112) | |-{gnome-keyring-d}(2191) | |-{gnome-keyring-d}(2193) | |-{gnome-keyring-d}(2195) | `-{gnome-keyring-d}(2398) |-gnome-terminal(2459)-+-bash(2469)| |-bash(3137)| |-gnome-pty-helpe(2468)| |-{gnome-terminal}(2462) | |-{gnome-terminal}(2463)| `-{gnome-terminal}(2470)|-goa-daemon(2423)---{goa-daemon}(2426)|-gvfs-afc-volume(2267)---{gvfs-afc-volume}(2268)|-gvfs-fuse-daemo(2209)-+-{gvfs-fuse-daemo}(2212)| |-{gvfs-fuse-daemo}(2213) | `-{gvfs-fuse-daemo}(2214) |-gvfs-gdu-volume(2245)|-gvfs-gphoto2-vo(2270)|-gvfsd(2206)|-gvfsd-burn(2291)|-gvfsd-metadata(2300)|-gvfsd-trash(2277)|-hud-service(2338)-+-{hud-service}(2341)| `-{hud-service}(2342)|-ibus-x11(2166)-+-{ibus-x11}(2172)| `-{ibus-x11}(2178)|-indicator-appli(2360)---{indicator-appli}tv\267(2372) |-indicator-datet(2358)-+-{indicator-datet}(2370)| `-{indicator-datet}(2373)|-indicator-messa(2356)---{indicator-messa}tv\267(2385) |-indicator-print(2354)-+-{indicator-print}(2377)|`-{indicator-print}tv\267(2376)|-indicator-sessi(2363)-+-{indicator-sessi}(2393)|`-{indicator-sessi}tv\267(2386)|-indicator-sound(2362)-+-{indicator-sound}(2371)| `-{indicator-sound}(2397)|-irqbalance(1109)|-lightdm(1141)-+-Xorg(1174)||-lightdm(1640)-+-gnome-session(2122)-+-bluetooth-apple(2230)-+ -{bluetooth-apple}(2246)| | | | `-{bluetooth-apple}tv\267(2241)| | | |-compiz(2216)-+-sh(2331)---gtk-window-deco(2332)-+-{gtk-windo w-deco}+| | | | | `-{gtk-window-deco}+| | | | |-{compiz}(2217)| | || |-{compiz}(2283)| | | | `-{compiz}(2284)| | | |-deja-dup-monito(2704)-+-{deja-dup-monito}(2706)| | | | `-{deja-dup-monito}(2708)| | | |-gdu-notificatio(2406)-+-{gdu-notificatio}(2407)| | | | `-{gdu-notificatio}(2408)| | | |-gnome-fallback-(2219)-+-{gnome-fallback-}(2223)| | | | `-{gnome-fallback-}(2228)| | | |-gnome-screensav(2428)-+-{gnome-screensav}(2434)| | | | `-{gnome-screensav}(2437)| | | |-gnome-settings-(2190)-+-{gnome-settings-}(2197)| | || `-{gnome-settings-}tv\267(2196) | | | |-ibus-daemon(2151)-+-ibus-engine-sun(2179)---{ibus-engine-sun}( 2181)| | | | |-ibus-gconf(2160)---{ibus-gconf}(2169) | | | | |-python(2164)-+-{python}(2183)| | | | | `-{python}(2185)| | | | |-{ibus-daemon}(2163)| | | | `-{ibus-daemon}(2170)| | | |-nautilus(2221)-+-{nautilus}(2235)| | | | `-{nautilus}(2240)| | | |-nm-applet(2225)-+-{nm-applet}(2233)| | | | `-{nm-applet}(2237)| | | |-polkit-gnome-au(2220)-+-{polkit-gnome-au}(2229)| | | | `-{polkit-gnome-au}tv\267(2226) | | | |-ssh-agent(2158)| | | |-telepathy-indic(2410)-+-{telepathy-indic}(2413)| | | | `-{telepathy-indic}tv\267(2412)| | | |-update-notifier(2530)-+-{update-notifier}(2531)| | | | `-{update-notifier}(2532)| | | |-zeitgeist-datah(2429)---{zeitgeist-datah}tv\267(2433)| | | |-{gnome-session}(2174)| | | |-{gnome-session}(2175)| | | `-{gnome-session}(2182)| | `-{lightdm}(2098)| |-{lightdm}(1165)| `-{lightdm}(1175)|-login(1067)---bash(3326)---pstree(3425)|-login(1478)---bash(2835)|-mission-control(2418)-+-{mission-control}(2424)|`-{mission-control}tv\267(2421)|-modem-manager(627)|-notify-osd(2199)-+-{notify-osd}(2203)| `-{notify-osd}(2204)|-polkitd(705)---{polkitd}(716)|-pulseaudio(2239)-+-gconf-helper(2257)| |-{pulseaudio}(2249)| `-{pulseaudio}(2254)|-rsyslogd(667)-+-{rsyslogd}(674)| |-{rsyslogd}(685)| `-{rsyslogd}(686)|-rtkit-daemon(1763)-+-{rtkit-daemon}(1776)| `-{rtkit-daemon}(1777)|-system-service-(2541)|-tpvmlp(1058)|-ubuntu-geoip-pr(2395)|-udevd(381)-+-udevd(1556)| `-udevd(1557)|-udisks-daemon(2250)-+-udisks-daemon(2253)| `-{udisks-daemon}(2256)|-unity-applicati(2968)-+-{unity-applicati}(2977)| `-{unity-applicati}(2988)|-unity-files-dae(2972)-+-{unity-files-dae}(2976)| `-{unity-files-dae}(2989)|-unity-lens-vide(2974)---{unity-lens-vide}tv\267(3002)|-unity-music-dae(2970)---{unity-music-dae}tv\267(2975)|-unity-musicstor(3016)---{unity-musicstor}(3017)|-unity-panel-ser(2336)-+-{unity-panel-ser}(2340)|`-{unity-panel-ser}tv\267(2339)|-unity-scope-vid(3014)-+-{unity-scope-vid}(3025)| |-{unity-scope-vid}(3026)| `-{unity-scope-vid}(3201)|-upowerd(1520)-+-{upowerd}(1531)| `-{upowerd}(1536)|-upstart-socket-(1006)|-upstart-udev-br(377)|-vmtoolsd(2054)---{vmtoolsd}(2075)|-vmtoolsd(2231)-+-{vmtoolsd}(2309)| `-{vmtoolsd}(2310)|-vmware-vmblock-(2036)-+-{vmware-vmblock-}(2039)|`-{vmware-vmblock-}tv\267(2037)|-whoopsie(1101)---{whoopsie}(1129)|-zeitgeist-daemo(2436)---{zeitgeist-daemo}(2438)`-zeitgeist-fts(2443)-+-cat(2451)`-{zeitgeist-fts}(2450) Ctrl+alt+f33.试验有几种方法可以列出系统中的所有运行进程?PsPs aux (附上一部分截图)Top(附上一部分截图)Pstree(附上一部分截图)4.执行下列命令和操作:$sleep180(新建一个进程,使其沉睡180秒)^Z(挂起进程)$jobs(列出作业控制的内容)$sleep 240&(以后台方式启动进程)$sleep 300&$sleep 330&$sleep 630&$jobs(列出进程当前的运行状态)$fg %4(将进程4切换到前台)^C(退出当前进程)$bg %1(将进程1切换到后台运行)$kill %5(终止5进程)解释命令的作用和执行结果。

兰大20春《操作系统》20春平时作业3 满分答案.doc

兰大20春《操作系统》20春平时作业3 满分答案.doc

1.进程间的同步与互斥,分别表示了各进程间的()。

A.相互独立与互相制约B.协调与竞争C.不同状态D.动态性与独立性【参考答案】: B2.操作系统中采用缓冲技术,能够减少对CPU的()的次数,从而提高资源的利用率。

A.中断B.访问C.控制D.依赖【参考答案】: A3.操作系统是一组()程序。

A.文件管理B.中断处理C.资源管理D.设备管理【参考答案】: C4.若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许()个进程参于竞争,而不会发生死锁。

A.5B.2C.3D.4【参考答案】: D5.磁盘上的文件是以()为单位读写的。

A.块B.记录C.区段D.页面【参考答案】: A6.程序运行时,独占系统资源,只有程序本身能改变系统资源状态,这是指()。

A.程序顺序执行的再现性B.程序顺序执行的封闭性C.并发程序失去封闭性D.并发程序失去再现性【参考答案】: B7.在下列系统中,()是实时系统。

A.计算机激光照排系统B.航空定票系统C.办公自动化系统D.计算机辅助设计系统【参考答案】: B8.为防止用户使用共享文件时可能造成文件被破坏,通常可采用()方法来保护文件。

A.建立多个副本B.定时转储文件C.设置口令D.规定使用权限【参考答案】: D9.逻辑文件存放在到存储介质上时,采用的组织形式是与()有关的。

A.逻辑文件结构B.存储介质特性C.主存储器管理方式D.分配外设方式【参考答案】: B10.为了照顾短作业用户,进程调度采用()。

A.先进先出调度算法B.短作业优先调度C.优先级调度D.轮转法【参考答案】: B11.在采用线程技术的操作系统中,正确的说法是()。

A.进程是资源分配的独立单位B.线程是资源分配的独立单位C.进程是调度执行的单位D.线程是调度执行的单位E.同一进程中各线程共享该进程分配到的主存空间【参考答案】: ADE12.进程调度算法中,可以设计成“可抢占式”的算法有()。

兰州大学操作系统实验三实验报告

兰州大学操作系统实验三实验报告

操作系统实验三
1.分别从至少三个虚拟终端登录,以树状形式列出你的系统中当前运行的所有进程及其PID。

找出你当前运行进程的所有祖先进程,并说明其各自的作用。

分析Linux系统中的进程的家族关系。

tty1
tty2
tty3
所有进程的祖先进程为systemd,是linux下的一种init软件。

Linux 软件中init是一个由内核启动的用户级进程,内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。

所以init始终是第一个进程(其进程编号始终为1)。

init有许多很重要的任务,比如像启动getty(用于用户登录)、实现运行级别、以及处理孤立进程等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多道程序设计:处理器处理很多程序,执行顺序取决于它们的相对优先级以及它们是否正在等待I/O当一个程序被中断时,控制权转移给中断处理程序,一旦中断处理程序完成,控制权可能并不立即返回到这个用户程序,而可能转移到其他待运行的具有更高优先级的程序操作系统的特征:并发性、共享、异步、虚拟操作系统分类:批处理操作系统分时操作系统实时操作系统进程的概念:定义:可并发执行的程序,在一个数据集合上的运行过程。

申请/拥有资源∽调度(线程)程序:静态概念,是指令和数据的集合,可长期存储程序属于进程进程与程序对应关系:- 一个程序可以对应一个进程或多个进程- 一个进程可以对应一个程序,或者一段程序进程的特征:动态性并发性独立性异步性进程的结构:组成(进程映像): 程序、数据集合、进程控制块PCB (Process Control Block )PCB是进程存在的唯一标志。

创建进程时,创建PCB;进程结束时,系统将撤消其PCB。

(单一表格链表)两状态:执行、未执行(队列)- 进程获得处理机,进入执行状态;当时间片结束或其它某种原因,进程释放处理机,暂停执行,处于未执行状态。

五状态:执行状态就绪状态阻塞状态新状态终止状态空新状态新创建的进程首先处于新状态②新状态就绪状态当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。

③就绪状态执行状态当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转变为执行。

④执行状态终止状态执行状态的进程执行完毕,或出现诸如访问地址越界、非法指令等错误,而被异常结束,则进程从执行状态转换为终止状态。

⑤执行状态就绪状态分时系统中,时间片用完,或优先级高的进程到来,将中断较低优先级进程的执行。

进程从执行状态转变为就绪状态,等待下一次调度。

⑥执行状态阻塞状态执行进程需要等待某事件发生。

通常,会因为进程需要的系统调用不能立即完成,如读文件、共享虚拟内存、等待I/O操作、等待另一进程与之通信等事件而阻塞。

⑦阻塞状态就绪状态当阻塞进程等待的事件发生,就转换为就绪状态。

进入就绪队列排队,等待被调度执行。

对换技术:将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,换入内存。

PCB不能换出去。

(因为PCB是系统唯一感知进程的标志)挂起进程被交换到外存,状态变为挂起状态进程的控制包括创建、阻塞、唤醒、挂起、激活、终止、撤销进程等。

这些控制和管理功能由操作系统中的原语实现。

原语(Primitive)是在管态下执行、完成系统特定功能的过程。

原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。

执行模式:用户模式低权限模式用户程序一般在该模式下运行系统模式/控制模式/内核模式高权限模式操作系统的内核运行于此模式模式切换程序状态字PSW中有一位用来标识当前执行模式通过修改该位的值来切换模式操作系统的控制结构:OS必须掌握每个进程和资源的当前状态信息OS构造并维护它所管理的每个实体的信息表内存表I/O表文件表进程表互斥条件:每次只允许一个进程处于临界区(忙则等待);进程只能在临界区内逗留有限时间,不得使其它进程在临界外无限期等待(有限等待)如果临界区空闲,则只要有进程申请就立即让其进入(空闲让进);进入临界区的进程,不能在临界区内长时间阻塞等待某事件,必须在一定期限内退出临界区(让权等待)不能限制进程的执行进度及处理机的数量信号量方法:软件方法和硬件方法都存在“忙等”问题,浪费了处理机时间。

信号量方法能实现进程互斥与同步,而不必“忙等”缓冲区的数量有限,为nproducer:while (true) {/* produce item v */while ((in + 1) % n == out)/* do nothing */;b[in] = v;in = (in + 1) % n}consumer:while (true) {while (in == out)/* do nothing */;w = b[out];out = (out + 1) % n;/* consume item w */}int readcount;semaphore x=1,wsem=1;void reader(){while(true){semWait(x);readcount++;if(readcount==1)semWait(wsem);semSignal(x);READUNIT();semWait(x);readcount--;if (readcount==0) semSignal(wsem);semGisnal(x);}}void writer(){while (true){semWait(wsem);WRITEUNIT();semSignal(wsem);}}void main(){readcount=0;parbegin(reader,writer);}管程:cwait(c):调用进程的执行在条件c上挂起,管程现在可被另一个进程使用csignal(c):恢复在cwait之后为某条件而挂起的进程的执行(选一)。

与信号量的semWait、semSignal不同如果在管程中的一个进程发信号,但没有在这个条件变量上等待的任务,则该信号丢失死锁的条件互斥一次只有一个进程可以使用一个资源占有且等待一个进程在等待其它资源分配时,继续占有已分配的资源非抢占不能强行抢占已分配给其它进程的资源除非进程主动释放循环等待资源分配图中存在一条封闭的进程链死锁预防:互斥一般条件下,第一个条件不能禁止占有且等待要求进程一次性请求所需要的资源所有资源都满足时才执行非抢占申请被拒绝,主动释放已分配的其它资源申请被拒绝,抢占已分配给其它进程的该资源循环等待资源的线性顺序只能申请已有资源后面的资源死锁避免:如果一个进程的请求会导致死锁,则不启动此进程(进程启动拒绝)如果一个进程增加的资源请求会导致死锁,则不允许此分配(资源分配拒绝)银行家算法状态:当前给进程分配的资源情况两个向量Resource和Available 两个矩阵Claim和Allocation安全状态:至少有一个进程执行序列不会导致死锁(所有的进程都能运行至结束)不安全状态:没有一个进程执行序列使得所有进程都能运行结束动态分区:分区长度和数目可变允许分配给进程和它所需相同的空间可能会导致内存中出现许多空洞(外部碎片)压缩技术 OS不时地移动进程,使得进程占用空间连续,并且所有空闲空间连成一片最佳适配选择与要求的大小最接近的块整体性能差(每次需要查找所有空闲块列表)最接近块给进程,则碎片很小,但无法利用需要经常做压缩整理首次适配从开始扫描内存,选择大小足够的第一块可用内存速度最快都放在前面,查找时候要经过这些块邻近适配从上一次放置的位置开始扫描内存,选择下一个大小足够的块内存经常在最后有一大空闲块大块被分解成小块需要压缩整理来获得内存尾部的大空闲空局部性原理一个进程中的代码和数据的访问有集簇的倾向因此,假设在很短时间内,仅需要访问进程的一部分块是合理的避免系统抖动虚拟内存机制是合理的虚拟内存所需要的支持硬件必须支持分页或分段OS必须能管理页或段在主存和辅存间的移动分页消除了外部碎片最佳替换算法(OPT)选择替换下次访问距当前时间最长的那些页必须准确知道将来的事件不可能实现用来衡量其它算法的标准最近最少使用 (LRU) 替换主存中上次使用距当前最远的页根据局部性原理,该页也是最近最不可能访问到的页每个页添加一个最后一次访问的时间标签开销大维护一个访问页的栈开销也大先进先出 (FIFO) 把分配给进程的页帧看做是一个循环缓冲区,按循环方式移动页最简单的页替换策略替换驻留在内存中时间最长的页这些页可能马上就会再次使用到周转时间:等待时间+服务时间归一化周转时间:1与服务时间的比值调度算法:先来先服务(FCFS)每个进程就绪后,就加入就绪队列当前正在运行的进程停止执行后,选择在就绪队列中存在时间最长的进程运行短进程可能要等待很长时间偏向受处理器限制的进程最短进程优先(SPN)非抢占式策略就绪队列中预计服务时间最短的进程被选择运行长进程可能饥饿难点:需要知道或者至少估计每个进程所需要的时间(估计不正确,OS可能中断执行)最短剩余时间(SRT)SPN的抢占机制版需要估算进程剩下的时间长进程可能饥饿最高响应比优先(HRRN)响应比:R=W+S/S w:等待处理器的时间s:期待的服务时间(运行时间)选择响应比最大的进程执行三种I/O通信技术:可编程 I/O 中断驱动I/O 直接存储器访问(DMA)单缓冲:假定,一块数据从外部设备输入到内存所花费的时间为T,在内存中移动所花费的时间为M,被用户进程加工处理所花费的时间为C,那么在没有使用I/O缓冲区的情况下,平均每块数据的处理时间近似为:T+C 在使用单I/O缓冲区的情况下,平均每块数据的处理时间近似为:max(T,C)+M相对于没有I/O 缓冲区的情形,单I/O缓冲区能提高用户进程的运行效率。

如果用户进程在对有关数据进行加工处理时不释放I/O缓冲区,那么用户进程的性能并不能得到改善。

如果T远远大于C,即外部设备的I/O速度比用户进程的计算速度慢得多,那么,单I/O缓冲区不会显著改善用户进程的性能。

双缓冲:增加一个缓冲区,两个缓冲区可以交替使用。

当数据从缓冲区复制到用户进程空间时,输入设备不必等待,可立即开始向另一个缓冲区输入数据。

因此,增加了一个缓冲区后,前述的平均工作时间可近似为:max(T,C)。

另外,若用户进程阵发性I/O的数据超过一个缓冲区而不满两个缓冲区,双缓冲使进程不会在I/O数据期间被阻塞。

SCAN磁头臂仅仅沿一个方向移动,并在途中满足所有未完成的请求到达最后一个磁道或该方向上没有其它请求,停止反向移动C-SCAN 循环SCANSPOOLing:实质是提高系统的利用率 Simultaneous Peripheral Operations On-Line ,直译意思是“联机情况下同时进行的外围设备操作”,通常称其为“假脱机操作”。

SPOOLing系统是虚拟设备最典型的代表,包括假脱机输入和输出系统两个部分。

核心思想:在快速辅助存储设备中建立I/O缓冲区,用于缓存从慢速输入设备流入内存的数据,或缓存从内存流向慢速输出设备的数据。

域(Field)基本的数据单元一个域包含一个值(如雇员的名字、生日等)类型+长度来描述定长/变长记录(Record)一组相关域的集合定长/变长应用程序的一个单元雇员记录(名字、生日、工作类型、雇佣日期等)文件(File)一组相似记录的集合被用户和应用程序看做是一个实体唯一文件名(通过名字实现访问)访问权限控制数据库(Database)一组相关数据的集合数据元素间存在着明确的关系供不同应用程序使用包含与一个组织或一个项目相关的所有信息目录包含关于文件的信息属性位置所有者目录也是一个文件所有者是OS 提供文件名和文件本身间的映射关系基本信息文件名文件类型文件组织地址信息卷起始地址使用大小分配大小访问控制信息所有者访问信息许可的行为命名:用户通过符号名字来引用文件为了保证文件引用的无二义性,文件名必须唯一文件定位通过从主目录开始向下到各个分支,直到最后该文件路径来定位多个文件可以有相同的名字(在不同目录下)作目录(默认目录)访问:访问权限无(None)知道(Knowledge)执行(Execution)读(Reading)追加(Appending)更新(Updating)更改保护(Changing Protection)删除(Deletion)所有者(Owner)层次结构每个选项都隐含着它前面的那些权限授权对象特定用户用户组(User Groups)全部(All)同时访问的管理方案:一个用户更新文件时,锁定整个文件更新时,锁定需要更新的记录读者-写者问题互斥和死锁连续分配在文件创建时,给文件分配一组连续的块大小可变分区文件分配表中每个文件只需要一个表项起始块长度问题外部碎片(紧缩算法)预分配(大小难预测、多预测造成的浪费)链式分配基于块的分配策略每个块包含一个指向下一个块的指针在分配表中只需要一个表项起始块长度可预分配可动态分配没有外部碎片适合顺序处理的文件局部性原理不再适索引分配每个文件在文件分配表有一个一级索引包含所有分配给文件的块的信息分配方法基于块分配的索引基于长度可变的分区索引无需合并、压缩支持顺序访问和直接访问文件最普遍的一种文件分配形式UNIX文件系统采用的是多级索引结构(综合模式)。

相关文档
最新文档