操作系统
文章平均质量分 75
学而不思则忘
一切都可以
展开
-
零拷贝技术
1. I/O中断读取在DMA技术之前,I/O过程是这样的:CPU发出I/O请求给磁盘,然后等待返回;磁盘收到指令后,开始准备数据,将数据放入到磁盘控制器的内部缓冲区中,然后产生一个中断。CPU收到中断信号后,停下现在工作,将磁盘控制器的缓存区的数据一次一个字节地读进自己的寄存器,然后再把寄存器里的数据写入到内存,在数据传输期间CPU是无法执行其它任务的。整个数据传输过程,都需要CPU参与,在这期间,CPU不能参与其它事情。2. DMA技术(直接内存访问)在进行 I/O 设备和内存的数据传原创 2021-08-09 09:48:22 · 109 阅读 · 0 评论 -
僵尸进程和孤儿进程
1. 概念僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。2. 危害和问题unix提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。这种机制就是: 在每个进程退出的原创 2021-04-03 16:49:42 · 86 阅读 · 0 评论 -
用户级线程和内核级线程的区别
线程的实现可以分两类:用户级线程,内核级线程和混合式线程。用户级线程用户线程在用户空间中实现,内核并没有直接对用户线程进程调度,内核的调度对象和传统进程一样,还是进程(用户进程)本身,内核并不能看到用户线程,内核并不知道用户线程的存在。不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。内核资源的分配仍然是按照进程(用户进程)进行分配的;各个用户线程只能在进程内进行资源竞争。用户级线程内核的切换由用户态程序自己控制原创 2021-03-11 08:36:39 · 7214 阅读 · 1 评论 -
Linux的IO模式以及select,poll,epoll详解
一、IO多路复用之select, poll, epoll详解select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。1. selectint s转载 2020-12-07 14:29:21 · 166 阅读 · 0 评论 -
操作系统死锁产生的原因和解决方法
一、引起死锁的原因竞争不可抢占性资源引起死锁竞争可消耗资源引起死锁进程推进顺序不当引起死锁二、产生死锁的四个必要条件互斥条件:进程所分配到的资源只能被一个进程使用。请求和保持条件:进程已经保持了一个资源,但又提出新的资源请求。不可抢占条件:进程已获得的资源在未使用之前不能被抢占。循环等待条件:在发生死锁时,必然存在一个进程-资源循环链。即P0等待P1, P1等待P2, ..... Pn 等待P0三、处理死锁的方法1. 预防死锁只要破坏死锁的四个条件之一就可以预防死锁,其中第一个原创 2020-12-04 11:33:53 · 3959 阅读 · 0 评论 -
进程间的通信方式
进程通信的类型共享存储器系统互斥访问共享空间基于共享数据结构的通信方式要求进程公用某些数据结构,借以实现进程间的信息交换。操作系统只提供共享存储器,由程序员负责对公用数据结构的设置及对进程间同步的处理。仅适于传递相对少量的数据,通信效率低下,属于低级通信基于共享存储区的通信方式在内存中画出一块共享存储区域,进程可通过对该共享区的读或写交换信息,实现通信,数据的形式和位置甚至访问控制都是由进程负责,而不是OS.这种通信方式属于高级通信。需要通信的进程先向系统申请获得共享存储区中的一个分区,并将其附原创 2020-11-03 09:10:47 · 2133 阅读 · 2 评论 -
操作系统进程和线程之间的区别
进程:是操作系统进行资源分配和调度的基本单位。指在系统中正在运行的一个应用程序;程序一旦运行就是进程。线程:是操作系统能够运算调度的最小单位,被包含在进程中,是进程中的实际允许单位。一条线程是指进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程执行不同的任务。...原创 2020-11-01 16:31:16 · 282 阅读 · 0 评论 -
动态分区分配算法
一、首次适应算法(First Fit——FF)算法思想:每次都从低地址查找,找到第一个能满足大小的空闲分区。如何实现:空闲分区以地址递增的顺序排列每次分配内存时从低地址顺序查找空闲分区链(空闲分区表)找到大小能满足要求的第一个空闲分区每次分配完成后修改空闲分区的大小当找不到满足要求的空闲分区时,内存分配失败优点:优先利用内存中的低址部分,保留高址部分的大空闲区,为以后到达...原创 2019-12-24 15:13:43 · 3008 阅读 · 0 评论 -
连续分配存储管理
原创 2019-12-24 14:24:33 · 342 阅读 · 0 评论 -
操作系统调度算法理解
一、FCFS (First-Come First-Served)——先来先服务算法算法思想:根据作业到达的先后次序来进行调度,先来的先执行。进程名ABCDE到达时间02468服务时间36452解释:作业到达的顺序为A,B,C,D,E。因此,执行的顺序也是A,B,C,D,E.二、SJF (Short Job First)——短作业...原创 2019-10-27 15:20:41 · 5842 阅读 · 3 评论