【笔试题面试题】IO类2 知识点汇总(笔试面试题)

         书接上文,配上前文一起实用更加,持续更新,督促自己学习

目录

1、详细描述一下什么是IO以及标准IO和文件IO的区别(补充)

2、什么是死锁,如何避免死锁(补充)

3、为什么引入同步互斥机制,请详细描述同步互斥机制的内容

4、进程的状态有哪些?请画出进程切换图,要给出状态转换的原因

5、特殊进程有哪些?


1、详细描述一下什么是IO以及标准IO和文件IO的区别(补充)

        IO全称为Input/Output,即输入/输出,它指的是计算机系统中数据的输入和输出过程。
1、标准IO属于库函数,调用封装好的相关库函数,来实现数据的输入输出;文件IO属于系统调用,调用系统(内核)提供的相关函数,来实现数据的输入输出
2、标准IO操作的是文件指针,文件IO操作的是文件描述符
3、标准IO有缓冲区,文件IO没有缓冲区


2、什么是死锁,如何避免死锁(补充)

        在多线程编程中,死锁是一种情况,其中两个或多个线程被永久阻塞,因为每个线程都在等待其他线程释放它们需要的资源,在C语言中,这通常涉及互斥锁(mutexes),当多个互斥锁被不同的线程以不同的顺序获取时,很容易发生死锁

避免死锁的方式:
        1. 避免持有和等待:尽可能让线程在开始执行前一次性获取所有必需的资源。
        2. 资源排序:规定一个全局顺序来获取资源,并且强制所有线程按这个顺序获取资源。
        3. 使用超时:在尝试获取资源时使用超时机制,这样线程在等待过长时间后可以放弃,回退,并重新尝试。
        4. 检测死锁并恢复:运行时检测死锁的存在,一旦检测到死锁,采取措施(如终止线程或回滚操作)来解决。


3、为什么引入同步互斥机制,请详细描述同步互斥机制的内容

        同步互斥机制是确保多线程程序中数据一致性、任务正确顺序执行、系统性能优化以及防止死锁等关键问题的重要技术手段。

        同步是指在不同任务之间协调执行顺序,确保任务按照特定的顺序执行。

        互斥则是指在任何时刻,只允许一个任务访问特定的资源或执行特定的代码段(称为临界区)。这是为了防止多个任务同时访问同一资源,从而避免数据不一致或竞态条件的发生


4、进程的状态有哪些?请画出进程切换图,要给出状态转换的原因


5、特殊进程有哪些?

        1、0号进程:也成为 idel 进程,他是操作系统启动后执行的第一个进程,这个进程也叫空闲进程,当没有其他进程执行时,系统会默认执行该进程。1号进程和2号进程都是由0号进程创建出来的。

        2、1号进程:也称init进程,该进程由0号进程产生,主要完成系统创建时一些软件硬件的初始化工作。当其他进程的父进程死亡后,会托管其子进程

        3、2号进程:也称kthreadd,该进程由0号进程产生,也成为调度进程,当某个就绪进程时间片轮到时,该进程负责进程的调度工作

        4、孤儿进程:当前进程的父进程死亡后,但是当前进程还没有结束,那么当前进程称为孤儿进程,孤儿进程会由1号进程收养

        5、僵尸进程:当前进程已经死亡,但是其父进程没有为其收尸,那么该进程为僵尸进程

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值