操作系统简单问题&&简单红黑树

操作系统问题

1.进程和线程的区别:a.粒度性分析;b.调度性分析;c.系统开销分析:线程不拥有系统资源;

2.进程不同与互斥: 互斥:是指某一资源同时只允许一个访问者访问,访问无序;

   同步:在互斥基础上,通过其他机制实现访问者对资源的有序访问;

同步体现的是协作性;互斥体现的是排他性;

3.进程间的通信方式:a.管道(只能在有父子进程关系的进程间使用);b.有名管道(允许无亲缘关系的进程的通信);c 信号量(计数器,可以控制多个小县城对共享资源的访问。);d 消息队列(由消息的链表,存放在内核中并由消息队列标识符标识。); e 信号(用于通知接受某个时间已经发生);f 共享内存:映射一段能被其他进程所访问的内存;g 套接字:可用于不同及其间的进程通信

消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等缺点

4.作业或进程的调度算法

    a。先来先服务    b。短作业优先    c。时间片轮转调度算法:保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片cpu执行时间    d。高响应比优先;    e。优先权调度算法:优先数越多,优先权月小;    f。多级队列调度算法:根据作业的性质和类型不同,将就绪队列再分为若干个子队列,所有的进程按照其性质排入相应的队列汇总,而不同的就绪队列采用不同的调度算法;

5.死锁:原因:a。竞争资源    b。进程推进顺序不当

    必要条件:a。互斥条件    b。不剥夺条件    c。请求与保持条件    d。环路等待条件

避免:银行间算法:允许进程动态的申请资源;

解除:a。强制性的从系统中撤销一个或多个死锁的进程以断开循环等待链,并收回分配给终止进程的去哪不自愿;    b。使用一个有效的挂起和解除机构来挂起一些死锁的进程;实质是从被挂起的进程哪里抢占资源以解除死锁;

6.页面置换算法:a。最佳置换算法;    b。先进先出置换算法;    c 最近最久未使用置换算法LRU;    d。最近未用算法Clock置换算法    f。最少使用置换算法LFU

1.节点是红色或黑色。

2.根节点是黑色。

3.每个叶子节点都是黑色的空节点(NIL节点)。

4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

变色:

为了重新符合红黑树的规则,尝试把红色节点变为黑色,或者把黑色节点变为红色

左旋转:

逆时针旋转红黑树的两个节点,使得父节点被自己的右孩子取代,而自己成为自己的左孩子。

右旋转:

顺时针旋转红黑树的两个节点,使得父节点被自己的左孩子取代,而自己成为自己的右孩子。

应用:jdk的集合类TreeMap和TreeSet 底层就是红黑树实现的。Java8的HashMap

猜你喜欢

转载自blog.csdn.net/qq_21325705/article/details/85071408