系统调用和库函数作业知识点整理

1

下面关于系统调用的描述中,错误的是(B)

A.系统调用把应用程序的请求传输给系统内核执行
B.系统调用函数的执行过程应该是在用户态
C.利用系统调用能够得到操作系统提供的多种服务
D.是操作系统提供给编程人员的接口
E.系统调用给用户屏蔽了设备访问的细节
F.系统调用保护了一些只能在内核模式执行的操作指令

知识点

A. 系统调用是用户程序与操作系统内核之间的接口
B. 系统调用函数的执行过程实际上是在内核态进行的。
用户程序通过系统调用请求服务,这一请求会导致从用户态切换到内核态,内核态完成具体的操作后再返回用户态。

2

下面的函数哪个是系统调用而不是库函数()?

A.printf B.scanf
C.fgetc D.read
E.print_s F.scan_s

知识点

系统调用是操作系统内核提供的接口,直接与内核交互,
库函数是用户空间的库提供的接口,通常是基于系统调用实现的。

3

知识点

A. 僵尸进程是指一个进程已经终止,但是它的父进程尚未读取其退出状态,因此它仍然存在于进程表中。僵尸进程不会被 init 进程接管。只有当父进程终止僵尸进程的状态才会被 init 进程接管,并最终从进程表中移除。
B. 孤儿进程是指一个父进程已经终止,而其子进程仍然运行的进程。孤儿进程会被 init 进程接管,init 进程会成为它们的父进程。
D. 当一个子进程通过 fork 创建时,它会复制父进程的地址空间,
但在现代操作系统中实现了写时拷贝技术。在这种技术下,父子进程最初共享相同的物理内存页面,直到其中一个进程尝试修改某个页面时,操作系统才会为该进程创建一个新的物理页面。这意味着,即使子进程只进行读操作,它和父进程也不会完全共享物理地址空间。一旦有写操作发生,就会产生独立的物理页面。

4

在抢占式多任务处理中,进程被抢占时,哪些运行环境需要被保存下来?[多选]

A.所有cpu寄存器的内容 B.全局变量
C.页表指针 D.程序计数器

知识点

ACD

C. 页表指针

页表指针(或页目录基址寄存器)指向进程的页表,定义了进程的虚拟内存到物理内存的映射。在进程切换时,需要保存和恢复这个指针,以确保进程的内存映射保持一致。
D. 程序计数器

程序计数器(也称为指令指针寄存器)保存了当前正在执行的指令地址。在进程切换时,需要保存程序计数器的值,以便恢复进程时能够继续执行被抢占时的指令。

(CD都是硬件上下文的一部分)

5

下列有关进程的说法中,错误的是? [多选]

A.进程与程序是一一对应的 B.进程与作业是一一对应的
C.进程是静态的 D.进程是动态的过程

知识点

**进程和程序或者作业都不是一一对应的。**一个程序可以对应多个进程。程序是静态的代码,而进程是动态的执行实体。

6

系统感知进程的唯一实体是

A.进程id B.进程控制块
C.进程管理器 D.进程名

知识点

A:PID,部分正确
B:PCB是系统感知和管理进程的唯一实体。

7

关于僵尸进程,以下描述正确的有?

A.僵尸进程必须使用waitpid/wait接口进行等待 B.僵尸进程最终会自动退出
C.僵尸进程可以被kill命令杀死
D.僵尸进程是因为父进程先于子进程退出而产生的

知识点

僵尸进程**需要其父进程调用 wait 或 waitpid 来读取其退出状态,**以便释放其占用的进程表条目。

僵尸进程不会自动退出,它们在父进程读取其状态之前会一直存在,直到父进程处理它。

僵尸进程实际上是已经终止的进程,它们不能被 kill 命令杀死,因为它们已经处于终止状态。只有其父进程通过 wait 系统调用才能将其完全清除。

8

下面有关孤儿进程和僵尸进程的描述,说法错误的是? 作业内容
A.孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。
B.僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
C.孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
D.孤儿进程和僵尸进程都可能使系统不能产生新的进程,都应该避免

知识点

孤儿进程会被init进程接管,不会占用进程表

9

以下描述错误的有
A.守护进程:运行在后台的一种特殊进程,独立于控制终端并周期性地执行某些任务。
B.僵尸进程:一个进程 fork子进程,子进程退出,而父进程没有 wait/waitpid子进程,那么子进程的进程描述符仍保存在系统中,这样的进程称为僵尸进程。
C.孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,这些子进程称为孤儿进程。(孤儿进程将由 init进程收养并对它们完成状态收集工作)
D.精灵进程:精灵进程退出后会成为僵尸进程

知识点

精灵进程(通常称为“守护进程”)在退出后不会自动成为僵尸进程。实际上,**精灵进程正常退出后,其资源会被清理,**而不会留下僵尸状态。

10

使用shell时,默认的环境变量放在哪里?
A.~/.bash_profile
B.~/.bash
C./etc/profile.d
D.~/bash

知识点

使用 shell 时,默认的环境变量通常放在:A
A. ~/.bash_profile 是用户级的配置文件,用于设置环境变量和启动程序。其他选项的解释如下:

其他的:
C. /etc/profile.d:这个目录包含了多个脚本文件,通常用于全局环境变量的设置,但不是直接的配置文件。

11

以下描述正确的有 [多选] :AC
A.子进程默认会复制拥有与父进程相同的环境变量
B.环境变量使shell运行环境配置变的更加复杂
C.环境变量可以使用export命令设置
D.删除一个环境变量可以使用unset和rm命令

知识点

unset 可以用来删除环境变量,而 rm 是用于删除文件的,不用于删除环境变量。

相关推荐

  1. 系统调用函数作业知识整理

    2024-07-17 03:48:05       19 阅读
  2. Flutter知识整理

    2024-07-17 03:48:05       33 阅读
  3. [知识]C 标准常用字符串处理函数

    2024-07-17 03:48:05       29 阅读
  4. React基本知识整理

    2024-07-17 03:48:05       42 阅读
  5. js this知识整理

    2024-07-17 03:48:05       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 03:48:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 03:48:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 03:48:05       58 阅读
  4. Python语言-面向对象

    2024-07-17 03:48:05       69 阅读

热门阅读

  1. 2024.7.16 刷题总结

    2024-07-17 03:48:05       17 阅读
  2. 【03】计算圆形面积

    2024-07-17 03:48:05       17 阅读
  3. linux高级编程(广播与组播)

    2024-07-17 03:48:05       23 阅读
  4. hexdump -C 实现

    2024-07-17 03:48:05       24 阅读
  5. 掌握Conda包管理:精通版本控制的艺术

    2024-07-17 03:48:05       20 阅读
  6. 【ubuntu】没有声音??连不上网络???

    2024-07-17 03:48:05       18 阅读
  7. bat 设置防火墙指定ip范围 指定时间段放行访问

    2024-07-17 03:48:05       19 阅读