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