文章

411

粉丝

1101

获赞

1698

访问

139w

头像
- 第46题回答
操作系统
发布于2025年6月14日 15:59
阅读数 40

1) PCB 的位置与进程状态

  • PCB 的位置:PCB(进程控制块)是操作系统管理进程的核心数据结构,位于内核空间,不属于用户进程的虚拟地址空间。
  • 进程状态:执行scanf()等待键盘输入时,进程因等待 I/O 操作完成而处于阻塞状态(或等待状态)。

2) main 函数代码位置及依赖驱动的函数

  • main 函数代码位置:代码段(Text Segment),用于存储可执行程序的指令。
  • 需通过驱动程序实现的函数:
    • scanf():读取键盘输入时,需通过键盘驱动程序与硬件交互,获取输入数据。
    • printf():输出内容到显示器时,需通过显示器驱动程序控制硬件显示。

3) 变量的内存分配区域

变量 / 对象分配区域说明指针变量ptr栈区(Stack)作为main函数的局部变量,存储在栈中,用于保存堆内存的地址。变量length栈区(Stack)若未存入寄存器,作为局部变量存储在栈中,用于暂存字符串长度。ptr指向的字符串堆区(Heap)通过malloc()动态分配的内存属于堆区,由程序运行时动态管理。


评分及理由

(1)得分及理由(满分2分)

得分:2分

理由:学生准确回答了PCB位于内核区,并正确指出执行scanf()时进程处于阻塞态,与标准答案完全一致。

(2)得分及理由(满分3分)

得分:3分

理由:学生正确指出main()函数的代码位于代码段(Text Segment),并准确识别了scanf()和printf()需要通过驱动程序实现,与标准答案一致。

(3)得分及理由(满分3分)

得分:2分

理由:学生正确回答了ptr指向的字符串在堆区,但错误地将ptr和length分配在栈区。根据标准答案,ptr应分配在可读写数据段,length在用户栈。因此,ptr的分配区域回答错误,扣1分。

题目总分:2+3+2=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发