随笔分类 -  操作系统

摘要:线程的实现方式在不同的操作系统中有不同的方式,可分为三种:内核支持线程,用户级线程,组合方式(前两种的结合)。 1.内核支持线程KST(Kernel Supported Threads) 内核支持线程KST在内核的支持下运行,在内核空间内完成创建,阻塞,撤销,切换。每一个内核线程设置了一个线程控制块 阅读全文
posted @ 2020-09-14 16:09 雨下_整夜 阅读(843) 评论(0) 推荐(0)
摘要:进程通信: 进程通信是指进程之间的信息交换 一、进程通信的类型 1.共享存储器系统 (1)基于共享数据结构的通信方式 这种通信方式要求各个进程直接公用某些数据结构。操作系统仅仅提供共享存储器,公用数据结构和进程间同步的问题都由程序员处理。这种方式仅仅适用于少量消息通信,通信效率低下,属于低级通信。 阅读全文
posted @ 2020-08-16 18:36 雨下_整夜 阅读(426) 评论(0) 推荐(0)
摘要:协程: 协程是一个特殊的函数,比线程更加轻量级,一个线程可以拥有多个协程。 一个线程内的多个协程之间的运行时串行的,一个协程运行,其他协程必须挂起。 协程完全有程序控制,运行在用户态。 阅读全文
posted @ 2020-08-11 20:49 雨下_整夜 阅读(105) 评论(0) 推荐(0)
摘要:1.方式 (1) 非剥夺方式 分派程序一旦把CPU分配给某个进程后便一直让他处理下去,直到这个进程运行完或者阻塞才会把CPU分配给其他进程 (2) 剥夺方式 分配给某个进程的CPU可能因为某些原因被抢夺。剥夺的原则有时间片原则,短进程原则,优先权原则 2.算法 (1) 先进先出算法 该算法把处理机分 阅读全文
posted @ 2020-08-11 20:47 雨下_整夜 阅读(140) 评论(0) 推荐(0)
摘要:用户态和内核态的区别: 用户态 内核态 运行用户程序。 运行操作系统程序。 程序运行在3级特权级时称为用户态,这是最低的特权级,大部分用户直接面对的程序都是运行在用户态。 程序运行在0级特权级时,称之为运行在内核态。 进程所能访问的内存空间和对象时受限制的,其所占有的处理器可能被抢占。 进程所能访问 阅读全文
posted @ 2020-08-11 20:44 雨下_整夜 阅读(127) 评论(0) 推荐(0)
摘要:死锁 两个或两个以上进程互相等待对方释放资源 产生的必要条件:1.互斥使用2.不可抢占3.请求和保持4.循环等待 这四个条件破坏其中一个就能预防死锁 银行家算法:一个进程必须在有限时间内释放资源,这样就可以预防死锁 阅读全文
posted @ 2020-08-11 20:36 雨下_整夜 阅读(141) 评论(0) 推荐(0)
摘要:fork()函数创建一个与原进程几乎相同的进程,两个进程可以做相同的事(运行相同的代码),但如果初始参数或者传入的变量不同,也可以做不同的事(运行不同的代码)。 调用fork()函数后,系统会给新进程分配资源,如存储数据,代码空间。然后把原进程中的值复制到新进程中,只有少数不同。 Fork()函数调 阅读全文
posted @ 2020-08-11 20:35 雨下_整夜 阅读(301) 评论(0) 推荐(0)
摘要:线程池的五个状态: Running:可以接受新的任务,也可以处理阻塞队列里的任务 Shutdown:不能接受新的任务,可以处理阻塞队列里的任务,running状态下调用shutdown()函数会装变成shutdown状态 Stop:不能接受新的任务,也不能处理阻塞队列里的任务,running状态和s 阅读全文
posted @ 2020-08-11 20:34 雨下_整夜 阅读(195) 评论(0) 推荐(0)