
操作系统
文章平均质量分 92
晓之木初
船到桥头自然直,前提是你努力过!
展开
-
Fuse挂载指定目录到挂载点
Fuse挂载指定目录到挂载点安装好fuse3.2.1(FileSystem in Userspace)以后,自己编译运行了它的hello.c 以及passthrough.c两个example,也阅读源代码,为这两个源代码添加了足够的注释。fuse文件系统,需要用户自定义它的给出的函数,并注册已经实现的函数(.init,.getattr,.readdir,.open 等),最后在main函数中调......原创 2018-04-26 16:00:41 · 11023 阅读 · 7 评论 -
linux的五种I/O模型、socket知识总结
1. Linux中的5种I/O模型以read操作为例,I/O需要经历两个阶段:等待数据准备好(waiting for the data to be eady)将数据从内核拷贝到进程中(copying the data from the kernel to the process)如果是socket中的read操作,第一步通常等待数据从网络中到达,数据到达后会被复制到内核的接收缓冲...原创 2019-10-06 19:35:18 · 377 阅读 · 0 评论 -
操作系统之虚拟内存(什么是虚拟内存、虚拟内存实现机制、页面置换算法)
1. 什么是虚拟内存?虚拟内存设计的背景:进程映像包括程序代码、数据和PCB,这些都需要占据物理内存。有可能一个进程运行所需的程序代码和数据完全超过了物理内存的大小,更何况操作系统中同时有多个进程,而且物理内存需要存储其他信息。这时候,可以根据程序的局部性原理,先将一部分的程序和数据加载到物理内存中,剩余部分放在磁盘上。有需要的时候,再从磁盘加载其他部分;如果物理内存不够,还可以将...原创 2019-10-06 19:35:28 · 2310 阅读 · 0 评论 -
操作系统之进程和线程(进程调度算法、进程间通信)
1. 进程的调度算法① 先来先服务(FCFS)先来先服务(first-come first-served,FCFS):是最简单的调度算法,按照请求的先后顺序进行调度。特点:非抢占式的调度算法,易于实现,但性能不好有利于长作业,不利于短作业。 因为短作业必须等待前面的长作业执行完毕才能执行,会造成短作业的等待时间过长。上表中的进程执行顺序: A(3) --> B(6) ...原创 2019-10-06 19:35:41 · 1211 阅读 · 0 评论 -
操作系统之设备管理(磁盘调度策略)
1. 磁盘结构盘面(Platter): 一个磁盘有多个盘面。磁道(Track): 盘面上的圆形带状区域,一个盘面有多个磁道。柱面: 处于同一垂直区域的磁道,叫做柱面。扇区(Track Sector): 磁道上一个弧段,一个磁道可以有多个扇区,它是最小的物理存储单位。目前主要有512 byte和4 kb两种大小。磁头(Head): 与盘面非常接近,能够将盘面上的磁场转换为电信号(读),...原创 2019-10-06 19:35:52 · 1216 阅读 · 0 评论 -
操作系统之死锁
1.原创 2019-10-06 19:36:03 · 4891 阅读 · 0 评论 -
操作系统之进程和线程(僵尸进程、孤儿进程、守护进程、Linux常见命令)
1. 僵尸进程① 僵尸进程概述什么是僵尸进程?在Linux系统中,任何一个子进程在调用exit()函数结束运行后,内核会释放该进程的所有资源,包括占用的内存和打开的文件等。同时,也会留下一个叫做僵尸进程(Zombie)的数据结构,Zombie中存储了该进程的进程号、退出码、退出状态、使用的CPU时间等信息。即僵尸进程是早已死亡的子进程,但在进程表中占了一个位置(slot)。子进程还...原创 2019-10-06 19:36:11 · 4237 阅读 · 5 评论 -
操作系统之进程和线程(二者的区别,进程的状态切换、创建、终止、上下文切换)
1. 进程的概述① 进程和线程进程(Process)是资源分配的基本单位,线程(Thread)是CPU调度的基本单位。线程将进程的资源分和CPU调度分离开来。 以前进程既是资源分配又是CPU调度的基本单位,后来为了更好的利用高性能的CPU,将资源分配和CPU调度分开。因此,出现了线程。进程和线程的联系: 一个线程只能属于一个进程,一个进程可以拥有多个线程。线程之间共享进程资源。进程和...原创 2019-10-06 20:17:43 · 7824 阅读 · 2 评论 -
I/O多路复用(select、poll、epoll)
1. select① select函数select函数允许监视一组文件描述符,等待一个或多个描述符成为就绪状态,从而完成I/O操作。select函数的原型如下:#include<sys/select.h>#include<sys/time.h>int select(int maxfdpl, fd_set *readfds, fd_set *writefds,...原创 2019-10-06 19:37:14 · 296 阅读 · 0 评论