0%

OS-习题精析

💡 TIP

放一些操作系统课堂习题的思考

相关链接|

image-20241219191642448

正解B,

💡 TIP

程序是否能够运行,除了装入主存(RAM)以外,还需要满足以下几个条件:

  1. 程序必须经过编译或解释

    • 如果是编译型语言(如 C、C++、Java 等),程序需要先被编译为可执行的机器码。
    • 如果是解释型语言(如 Python、JavaScript),需要一个解释器在运行时逐行解释代码。
  2. 依赖的操作系统和环境支持

    • 程序需要运行在支持的操作系统环境下,例如 Windows、Linux 或 macOS。
    • 如果程序依赖特定的运行时环境(如 Java 的 JVM 或 .NET 的 CLR),必须确保这些环境已安装且版本兼容。
  3. 所需资源的可用性

    • 程序运行需要 CPU 时间片、内存空间和其他硬件资源。如果系统资源不足,程序可能无法正常运行。
    • 如果程序依赖外部文件、数据库或网络服务,这些资源也需要可用。
  4. 入口地址或执行点明确

    • 程序需要有明确的入口点(如主函数 main() 或脚本的起始点)。在操作系统加载程序时,它需要知道从哪里开始执行。
  5. 程序权限满足要求

    • 程序需要足够的权限访问主存、外部设备或系统功能。如果权限不足,可能无法运行或只能部分功能正常。

如果仅仅是装入主存而未满足以上条件,程序将无法正确运行。

——GPT

  1. 程序获得CPU执行的两个条件是?

    • 程序进入内存
    • 程序待执行指令的内存地址设为PC寄存器的值
  2. 在程序执行时,如果两个并发程序同时访问并修改同一个全局变量时,程序结果会不确定,但如果程序并不相互干涉及,就不会影响程序结果

  3. 程序在并发运行的过程中并不具有封闭性,这是因为多个程序会共享资源,导致他们的执行相互影响

  4. A、B两个程序并发执行必须先满足的条件:即每个程序的写集均与其他进程的读/写集均无交集

  5. 进程可以并发执行,而程序像是进程的规则,由程序可以创建很多可以运行的进程,以执行程序所规定的任务

  6. 若系统为单处理机系统,现在共有$n$个用户进程

    则处于就绪状态的用户进程最多有$n-1$个(如果所有进程均处于就绪状态,则一定有一个进程会被CPU拿去执行)

    处于阻塞的进程一共有$n$个(发生死锁)

  7. 一个进程被唤醒,仅意味着该进程变为就绪状态,并不意味着进程重新占用CPU


(完)