• 沒有找到結果。

操作系统实验(复习)操作系统实验(复习)

N/A
N/A
Protected

Academic year: 2021

Share "操作系统实验(复习)操作系统实验(复习)"

Copied!
40
0
0

加載中.... (立即查看全文)

全文

(1)

操作系统实验(复

习)

(2)

考试考什么?

• 常见的 shell 命令

• Linux 系统内核知识

• 三个实验中涉及到的知识

• 阅读内核代码的能力

(3)

常见 Linux 命令

• 目录类 : pwd 、 cd 、 ls 、 ln 、 . 、 .. 、 ~

• 权限类: chmod, chown

• 解压类: tar/gzip –c/x

• 搜索类: grep 、 find, find . -name "*.h" –print

• 设备类: mount 、 unmount

• 进程类: ps 、 top 、 kill

• 文件类: echo 、 cat 、 touch 、 mkdir

(4)

Linux 内核知识-基础

• 在大部分公司发行的 Linux 系统中,默认的 shell 是 : bash

• 哪个命令可以用来查看 Linux kernel 版本信息 : un ame

• 在创建 Linux 分区时,至少要创建的两个分区是 : Swap/root

• 哪一个只是在内核运行时存在的 : proc

• Linux 的内核受严格保护,与进程的用户态代码几

乎隔绝。若想从用户态进入内核态,可以通过 : i

nt 0x80

(5)

Linux 内核知识-系统相关

• Linux 2.6 内核相对于 2.4 内核来说很多方面得到了很 大的改进,请问下面的哪一个结构与内核堆栈放在 一起?

• A. thread_info B. files_struct C. mm_struct D. ta sk_struct

• Linux 操作的进程调度,没有采纳 算法的思想。

• A. SJF B. Round Robin C. priority D. FIFO

• Linux 内核源代码编译后,生成的 image 文件,其文

件名

• A. 必须是 bzImage B. 必须是 vmlinuz C .任意字符

串 D . 必须是 image

(6)

Linux 内核知识-系统相关

• Linux 设备的第一个扇区,也就是读取最前面的 ____ 个字节,叫做主引导扇区 MBR

• A. 1M B. 512K C. 512 D. 1024

• MBR 的最后两个字节是 ____ 和 ____

• A. 0x55,0xaa B. 0xFF, 0xFF C. 0x00,0x00, D. 0x80,0x80

• 一个硬盘最多只能有 __ 个一级分区,又叫 做 " 主分区 ”

• A. 1 B. 2 C. 3 D. 4

(7)

Linux 内核知识 —— 寄存器

• 在 Linux 的缺页中断响应程序中,引起缺页的虚 拟地址存放在哪个寄存器中 ?

• A. CR0 B. CR3 C. CR1 D. CR2

• 在 Linux 的进行 system call 处理时,系统调用号 存在那个寄存器中?

• A. EAX B. SS C. DS D. ES

• 内核可以快速的找到一个进程的 task_struct 地址

,可以将那个寄存器内容和 0xffffe000 进行与

• A. EAX B. ESP C. DS D. CS

(8)

Linux 内核知识 —— 寄存器

• Linux 内核中 CPU 执行的下一条代码地址存在那 个寄存器上

• A. EAX B. SS C. EIP D. ESP

(9)

Linux 内核知识 —— 进程管理

下面的哪一个结构可以被称为进程控制块 PCB (Process Con trol Block) 的最重要结构 ?

• A. struct mm_struct B. struct pcb C. struct thread_info D. struct t ask_struct

在 task_struct 结构中,下面的哪一个字段不是用来表示进 程的状态?

• A. volatile long state B. unsigned int flags C. int exit_state D. pi d_t exit_flags

在 task_struct 结构中,哪一个字段表示进程的静态优先级

• A. nice B. rt_priority C. priority D. counter

(10)

Linux 内核知识 —— 进程管理

• 如要遍历所有进程,?处应该填入

for (p = & ? ; (p = p->next_task) != & ? ; )

• A. current B. init_taskC. prev_task D. init

• 注意:

#include <stdio.h>

main( ) {

execl(“/bin/ls”,”ls”,”-l”,0);

printf(“Can only get here on error/n”);

}

(11)

Linux 内核知识 —— 进程管理

• 众多版本的 fork 函数,都会调用 do_fork 函数来 做实际的工作,其中不包括:

• A. 把父进程 task_struct 的值全部赋给子进程 task_st ruct

• B. 检查是否超过了资源限制

• C. 共享或复制父进程文件处理、信号处理及进程虚

拟地址空间等资源

• D. 初始化子进程的 counter 值为 0

(12)

Linux 内核知识 —— 内存管理

• 多个进程的 32 位 Linux 内核中,虚存的管理是 如何的?

• A. 内核占有 3-4G 空间,其他进程共享 1-3G

• B. 内核占有 3-4G 空间,其他每个进程独自占有 1-3 G

• C. 所有进程共享 1-4G 空间

• D. 用户空间进程可以访问 1-4G 全部虚存地址

(13)

Linux 内核知识 —— 内存管理

• Linux 的每个进程都有若干个 VMA ( vm_area_stru ct )结构,下面哪个不是正确描述 VMA 的 ?

• A .不能出现两个地址连续的 VMA 。

• B . VMA 结构中的 vm_ops 是指向 vm_operations_struc t 结构体的指针,该结构体中包含着指向各种操作的函 数的指针。

• C . VMA 是虚存空间中一个连续的区域,在这个区域 中的信息具有相同的操作和访问特性

• D .一个进程的 VMA 互不重叠, Linux 内核为每个进 程维护了一棵红黑树 (Red Black Tree) ,以保证搜索速

(14)

Linux 内核知识 —— 内存管理

• Linux 能够在几乎所有类型的 CPU 上面运行。在 I NTEL 386 架构上运行时 ____ 。

• A .它利用其 MMU 的 paging 机制;它不用其 segme ntation 机制,只是不得不做了 规定动作 “ ”

• B .它利用其 MMU 的 paging 机制,也利用其 segme ntation 机制

• C .它不用其 MMU 的 paging 机制;它不用其 segme ntation 机制,只是不得不做了 规定动作 “ ”

• D .它不用其 MMU 的 paging 机制,但利用其 segme

ntation 机制

(15)

Linux 内核知识 —— 内存管理

• Linux 进程的页表,由页目录表依次索引。而普 通进程(注意,不是内核线程)的页目录表则由 进程 PCB 的 取得。

• A. pgd 指针 B. mm 指针 C. active_mm 指

针 D. CR3

• Linux 内存管理子系统采用基于内存区域 算法来管理物理页帧的分配和回收。

• A .伙伴( Buddy ) B . Slab 分配器 C . LR

U D. 位示图

(16)

Linux 内核知识 —— 内存管理

• Linux 使用 slab 分配器的主要目的?

• A .为申请不足一页帧的小对象(缓冲)申请与释放

物理内存,以减少碎片。

• B. 为了更加快速申请与释放物理内存。

• C .为申请多个连续的物理页帧而设置。

• D. 用伙伴( buddy )系统申请和释放内存需要花费

很多时间。

(17)

Linux 内核知识 —— 内存管理

• Linux 将内存分为若干的区域,其中只有 Normal _Zone 可以直接访问,它占内存的位置为:

• A. 0-1G

• B. 16MB-1G

• C. 16MB-896MB

• D. 0-896MB

(18)

Linux 内核知识 —— 文件管理

• 文件对象 file 表示进程已打开的文件,只有当文 件被打开时才在内存中建立 file 对象的内容。该 对象由 open() 系统调用创建,由 close() 系统调用 销毁。文件 file 被进程 P1 打开 2 次,进程 P2 打 开 1 次,请问在内存中有几个 file 对象?

• A. 1 B. 2 C. 3 D. 不确定

• 下面的哪一个结构被称为内存 FCB (File Control Blo ck)?

• A. struct dentry B. struct pcb C. struct file D. struct i

node;

(19)

Linux 内核知识 —— 文件管理

• ext2/ext3 文件系统的实现机理,采用的是 _____

• A . contiguous allocation B . linked allocation

• C . indexed allocation D .一种 B 和 C 的组合

• 用 ln 命令生成了一个符号链接 new ,指向文件 old 。如果你将文件 old 删除了,是否还能够通 过 new 访问文件 old 中的数据?

• A .仍然可以访问 B .不可能再 访问到

• C .能否访问取决于 new 的所有者 D .能

否访问取决于 new 的权限

(20)

Linux 内核知识 —— 文件管理

• 下面的哪一个结构是描述 VFS 的一个目录项 ?

• A. struct inode B. struct file C. struct dentry D. struct dir_entry

• 当某个文件执行第一次打开操作时,读入内存的 是哪一项的?

• A. 引导记录 B. 超级块( superblock ) C. 文件

的 inode 信息 D. 文件数据

(21)

Linux 内核知识 —— 文件管理

• 文件对象 file1 , file2 表示进程已打开的文件,

假设 file2 其时是 file1 的一个链接文件。那么文 件 file1 被进程 P1 打开 2 次,文件 2 被进程 P2 打开 1 次,请问在内存中有几个 dentry 和几个 i node 对象?

• A. 1, 1

• B. 2, 1

• C. 3, 1

• D. 3, 2

(22)

Linux 内核知识 —— 文件管理

• 调用 open 打开一个文件后,系统会返回一个文 件描述符,该描述符说法错误的是:

• A. files_struct 里面的打开文件数组 fd 下标

• B. 同一个文件打开多次有同样的描述符

• C. 描述符是按照顺序递增

• D. 一个进程最多打开 256 个文件

(23)

Linux 内核知识 —— 文件管理

• 字符设备文件和块设备文件。 Linux 把对设备的 I/O 作为对文件 的读取 / 写入操作内核提供了对设备处理和对文件处理的统一接 口。

• fd0 (for floppy drive 0)

• hda (for harddisk a)

• lp0 ( for line printer 0)

• tty(for teletype terminal)

• 管道 (PIPE) 文件:用于在进程间传递数据。 Linux 对管道的操 作与文件操作相同,它把管道做为文件进行处理。

• 链接文件:又称符号链接文件,它提供了共享文件的一种方法

• socket 文件

(24)

Linux 内核知识 —— misc

• Makefile

TARGET = helloworld

KDIR = /lib/modules/$(shell uname -r)/build PWD = $(shell pwd)

obj-m += $(TARGET).o default:

make -C $(KDIR) M=$(PWD) modules

(25)

Linux 内核知识 —— misc

• 安装/卸载内核模块

• insmod 命令加载模块

# insmod helloworld.ko Hello World!

• 使用 lsmod 命令查看 模块

# lsmod

Module Size Used by helloworld 464 0 (unused)

• rmmod 命令卸载模块

# rmmod helloworld

Goodbye!

(26)

Linux 内核知识 —— misc

• /sbin/init

• init 进程首先读取文件 /etc/inittab ,它是运行级别的 设置文件

/etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d

$ ls -l /etc/rc2.d

README

S01motd -> ../init.d/motd S13rpcbind -> ../init.d/rpcbind

S14nfs-common -> ../init.d/nfs-common

S16binfmt-support -> ../init.d/binfmt-support S16rsyslog -> ../init.d/rsyslog

S16sudo -> ../init.d/sudo

S17apache2 -> ../init.d/apache2 S18acpid -> ../init.d/acpid

(27)

Linux 内核知识 —— misc

• System call

#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \

type name(type1 arg1,type2 arg2,type3 arg3) \

参数 参数在堆栈的位置 传递参数的寄存器

arg1 00(%esp) ebx

arg2 04(%esp) ecx

arg3 08(%esp) edx

arg4 0c(%esp) esi

arg5 10(%esp) edi

(28)

Linux 内核知识 —— misc

• Linux 2.6 的进程设置 140 个优先级。实时进程优先级为 0-99 ,普通 进程优先级 100-139 的数。 0 为最高优先权, 139 为最低优先权。

• 优先级分为静态优先级和动态优先级

• 调度程序根据动态优先级来选择新进程运行

• static_prio 静态优先级

• 与 2.4 版本中的 nice 值意义相同,但取值区间不同,是用户可影响的优先级

• 通过 set_user_nice() 来改变

• static_prio= MAX_RT_PRIO + nice + 20

• MAX_RT_PRIO 定义为 100

• prio 动态优先级

• 普通进程: prio = max (100, min ( static priority - bonus + 5, 139))

• 实时进程计算更加复杂

(29)

Linux 内核知识 —— misc

• 调度队列

struct prio_array{

unsigned int nr_active; /* 本进程组中的进程数 */

unsigned long bitmap[BITMAP_SIZE];/* 加速 HASH 表访问 的位图快速定位第一个非空的就绪进程链表 */

struct list_head queue[MAX_PRIO];/* 以优先级为索引的 HA SH 表 */

}

(30)

Linux 内核知识 —— misc

• 3 种用户和 3 种访问权限 :

• 用 ls -l 或 ls -ld 命令显示文件的访问权限:

-rwxr--r-- 1 sarwar faculty 163 may 05 23:13 temp

文件类型 访问 权限

链接计数 所有者 文件 日期 时间 文件名 所在组 大小

(31)

三个实验中用到的知识

• 一个设备名为 /dev/sdb 的 usb 盘, U 盘的文件 系统为 FAT32 ,安装到 Linux 系统的 /mnt/usb 目 录下的命令是?

• A . mount –t vfat /dev/sdb /mnt/usb

• B . mount –t fat32 /dev/sdb /mnt/usb

• C . mount –t vfat /mnt/usb

• D . mount –t fat32 /mnt/usb

(32)

三个实验中用到的知识

• 试图新增一个系统调用,但是修改内核代码遇到 了错误。为了找出 bug ,可以

• A. 用 printf(“whatever I like to check\n”); 然后从终端 查看输出结果

• B. 用 printf(“whatever I like to check\n”); 然后从 /var/l og/messages 查看输出结果

• C. 用 printk(“whatever I like to check\n”); 然后从终端 查看输出结果

• D. 用 printk(“whatever I like to check\n”); 然后从 /var/

log/messages 查看输出结果

(33)

三个实验中用到的知识

• 编译内核,在输入命令 make install 后 , 启动的 映像文件存在哪个目录中 。

• A. arch/i386/boot B. arch/i386/image

• C. boot/grub D. /boot

• 下面哪一个是编译内核时的内核配置文件名?

• A. .config B. .configure

• C. makefile D. Makefile

(34)

三个实验中用到的知识

• 实验中既用到 printk() ,又用到 printf() 。如下阐 述,哪个最准确?

• A. printf() 在进程用户态使用, printk() 在进程内核态 使用

• B. printf() 将输出结果显示在 terminal , printk() 将结 果输出至 kernel ring buffer

• C. A 和 B 都正确

• D. A 和 B 都不正确

(35)

三个实验中用到的知识

• 在添加一个文件系统实验中,使用如下命令进行 测试(开始的数字为行号),假设使用 mount 命令有足够的权限,请回答下面两个问题:

1. dd if=/dev/zero of=myfs bs=2M count=1 2. /sbin/mkfs.ext2 myfs

3. ./changeMN myfs

4. mount –t myext2 –o loop ./fs.new /mnt 5. mount

6. umount /mnt

7. mount –t ext2 –o loop ./fs.new /mnt

(36)

三个实验中用到的知识

• 第 1) 行命令的功能是 。

• A. 创建一个新的文件 myfs

• B. 把大小为 2M 字节的文件 /dev/zero 复制到 myfs

• C. 创建大小为 1M 字节的,名字为 myfs 的,内容全 为 0 的文件

• D. 创建大小为 2M 字节的,名字为 myfs 的,内容全

为 0 的文件

(37)

三个实验中用到的知识

• 第 2) 行命令的功能 _____ 。

• A .创建一个新的文件 myfs

• B .把 myfs 格式化成 ext2 文件系统

• C .把 myfs 格式化成 myext2 文件系统

• D .在硬盘上建立一个卷号为 myfs 的 ext2 分区

• 哪一行命令会产生错误信息 ?

• A. 第 4) 行 B. 第 5) 行

• C. 第 6) D. Line 7)

(38)

阅读内核代码的能力

define nr_syscalls ((syscall_table_size)/4) /* LINE A */

#include “syscall_table.S”

syscall_table_size = (.-sys_call_table)

而源文件 arch/i386/kernel/syscall_table.S” 的所有程序行为: ENTRY(sys_call_table)

.long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */

.long sys_exit .long sys_fork

…………

.long sys_ppoll

.long sys_unshare /* 310 */ /* 文件 syscall_table.S最后一行 */

(39)

阅读内核代码的能力

• 在 Linux 中,使用 task_struct 结构来表示一个进 程,每个进程都有自己独立的 task_struct 。简要 分析 task_struct 结构中下列 8 个字段的含义

volatile long state unsigned long flags;

struct files_struct *files unsigned long policy;

struct mm_struct *mm int pid

int prio, static_prio;

char comm[TASK_COMM_LEN]

(40)

阅读内核代码的能力

• 下面是文件路径处理程序 open_namei() 函数的 部分代码,包括重要的数据结构 struct nameidat a ,以及 __link_path_walk() 函数。请分析代码 第 792 行,第 818~822 行,第 841~844 行,第 8 60~865 行

• 在 do_fork() 函数中, copy_mm() 函数的工作主

要是在 dup_mm() 函数里面去完成。请简要分析

dup_mm() 函数代码的 463 、 467 、 469-470 、

472-473 、 475 行

參考文獻

相關文件

,在需求分析过程中应该建立起软件系统的 行为模型。状态转换图 ( 简称为状态图 ) 通

一般说来, 对于一个区间上单调的函数的 图形都存在一个需要判别弧段位于相应的弦线

Thomson)也 完成了 电子衍射实验 。 他是在 德布 罗意 理论 的启发下进 行实

下图是单脚支撑形式的示意图,支撑脚和地面的接触点 A 与前、后轮和地面之间 的接触点 B 、 C 共同构成三点支撑,在地面形 成△

这一类系统无论是 在电路理论还是在自动控制理论的研究中 , 都占

业技术”模块是在“技术与设计 1” “技术与设计 2”必修模块学完之后的一 个选修模块,它包括“绿色食品” “种质资源的保护和引进” “无土栽培” “营 养与饲料”

通用技术 选修 4 现代农业技术 专题一 绿色食品 Modern Agricultural Technology Topic 1Green Food.

穿插课文之中、形 式多种多样的活动使 我们所学的知识与技 能得到及时的巩固、应 用和内化,它是我们主 动建构知识、拓展能