操作系统面试题-3

常考面试题

  1. 说说你对进程的理解⭐⭐⭐

    程序是指令、数据及其组织形式的描述,而进程则是程序的运行实例,包括程序计数器、寄存器和变量的当前值。

    Linux的进程结构,一般分为三部分代码段、数据段(.data与.bss)和堆栈段

    • 代码段用于存放程序代码,如果有多个进程运行相同的一个程序,那么它们可以使用同一个代码段。代码段还会存储一部分常量,如字符串常量字面值。

    • 数据段则存放程序的全局变量和静态变量。

    • 堆栈段中的栈用于函数调用,存放着函数的参数、局部变量。

  2. 进程有哪五种状态,如何转换?⭐⭐⭐⭐⭐

    img

    进程有五种状态:创建、就绪、执行、阻塞、终止

    答案解析

    创建状态
    一个应用程序从系统上启动,首先就是进入创建状态,需要获取系统资源创建进程管理块(PCB:Process Control Block)完成资源分配。

    就绪状态
    创建状态完成之后,进程已经准备好,处于就绪状态,但是还未获得处理器资源,无法运行。

    运行状态
    获取处理器资源,被系统调度,当具有时间片开始进入运行状态。如果进程的时间片用完了就进入就绪状态

    阻塞状态
    运行状态期间,如果进行了阻塞的操作,如耗时的I/O操作,此时进程暂时无法操作就进入到了阻塞状态,在这些操作完成后就进入就绪状态。等待再次获取处理器资源,被系统调度,当具有时间片就进入运行状态

    终止状态
    进程结束或者被系统终止,进入终止状态

  3. 请你说说Linux的fork的作用⭐⭐⭐⭐⭐

    fork函数用来创建一个子进程。对于父进程,fork()函数返回新创建的子进程的PID。对于子进程,fork()函数调用成功会返回0。如果创建出错,fork()函数返回-1。

    答案解析

    fork()函数,其原型如下:

    #include <unistd.h>  
    pid_t fork(void);  

    fork()函数不需要参数,返回值是一个进程标识符PID。返回值有以下三种情况:

    (1) 对于父进程,fork()函数返回新创建的子进程的PID。
    (2) 对于子进程,fork()函数调用成功会返回0。
    (3) 如果创建出错,fork()函数返回-1。

    fork()函数创建一个新进程后,会为这个新进程分配进程空间,将父进程的进程空间中的内容复制到子进程的进程空间中,

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

<p> - 本专刊适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专刊适合于互联网C++软件开发、嵌入式软件求职的学生或人士。 - 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构等一系列知识点的讲解,并且最后总结出了高频面试考点(附有答案)共近400道,知识点讲解全面。不仅如此,教程还讲解了简历制作、笔试面试准备、面试技巧等内容。 </p> <p> <br /> </p>

全部评论
第一题里面的,常量应该在代码段分配空间吧?
点赞 回复 分享
发布于 2021-07-17 22:27

相关推荐

2024-11-08 10:39
门头沟学院 C++
点赞 评论 收藏
分享
起名字真难233:这名字一看就比什么上海寻梦信息技术有限公司,北京三快网络技术有限公司等高级不少
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务