![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 75
全栈黎明
以代码为生
展开
-
linux操作系统中的僵尸进程
原创 2020-09-27 10:11:03 · 108 阅读 · 0 评论 -
用户态和内核态的切换
用户态切换到内核态的方式 系统调用:比如fork()方法,直接fork出一个线程(具体的底层实现是软件中断,下面会讲) 异常:当CPU在执行用户空间的程序时,发生了异常,处理异常的话就必须在内核态进行处理,比如缺页异常 外围设备的中断:当进行文件IO操作完成后,硬件IO设备会向CPU发出一个中断信号,如果这时候CPU正在执行用户空间的程序,而又因为中断会调用内核态的程序,所以就完成了用户态到内核态的切换 用户态如何切换到内核态 软件中断 -- int$0x80 -- System_call() + 系统原创 2020-09-27 10:02:54 · 276 阅读 · 0 评论 -
操作系统之进程通信
进程通信管道(不可见管道)FIFO(命名管道)消息队列信号量共享内存进程如何知道其他进程给自己发送了数据? 两个进程之间是相对独立的空间,无法在用户态进行通信,可以通过内核中的“对象”进行通信 2. 线程可以通过同一个进程里面设置全局变量进行通信 管道(不可见管道) 1. 不可见(文件系统中无文件名) 2. 通过一个队列实现(入队就是写,出队就是读) 3. 是一个特殊的文件(只需要两个文件描述符,一个出,一个入) FIFO(命名管道) 1. 可见(文件系统中有文件) 2. 向里面写的时候会阻塞读原创 2020-08-02 15:11:43 · 133 阅读 · 0 评论