操作系统知识点整理

1.进程PCB(控制块)包含

        进程标识符,内部标识符用来给操作系统使用,外部标识符给用户使用。

        处理机状态,包括通用寄存器,指令计数器

        进程调度信息,包括进程状态是阻塞还是运行,进程优先级等

        进程控制信息,程序和数据的地址,资源清单,进程同步等

2.进程与线程区别

    进程是资源分配的实体,线程是资源调度的实体,一个进程可以有多个线程,线程之间共享进程资源,线程有自己独立的堆栈,不与进程共享,线程更轻量级。

3.进程之间通信方式

      管道、系统IPC(消息队列、共享内存),socket。

    管道分为普通管道和命名管道,命名管道可以在无亲缘关系的进程之间通信,普通管道用于有亲缘关系,管道是一种半双工的通信方式。

4.用户态和核心态的区别

  运行在用户态的程序不能访问操作系统的内核数据结构和程序。切换到内核态的三种方式,系统调用、异常、外围设备中断。

系统调用是为用户设计的一种访问操作代码的方式,实现方式为中断。异常比如缺页。设备中断比如设备IO完成。中断过程:发出中断请求,操作系统保存当前进程的上下文信息,检查中断向量表是那种中断,然后开始中断处理,执行程序。

5.用户栈和内核栈的区别

    操作系统内存存在二个区域,一个是用户区,一个是内核区。用户栈数据存放在用户区,当中断或者系统调用之后,系统进入内核态执行程序,执行之后的结果是保存在内核区,需要从内核区将数据再拷贝到用户区

6.线程池是生成若干个线程睡眠,需要就从池中唤醒一个,使用完毕之后归还在睡眠。

7.死锁的必要条件:

    互斥、请求保持、不可剥夺、环路等待。

8进程调度算法

   先来先服务、时间片轮转、短作业优先,高响应比优先,多级反馈队列。

多级反馈队列:新来的放到队列尾端,按照FCFS原则调度,如果没有完成,就放到第二级队列中。对于短作业可以及时处理,长作业也不会长时间不处理。

9.内存分配算法

    首次适应是从分区链表中地址值选择一个合适的区域,循环首次是开始的位置是上次查找的位置。最佳适应算法是将分区链表按照大小排序,每次取合适的最小的,最坏适应算法也是排序,取最大的。伙伴系统是存在多个大小不一的分区链表,每次找2的i次方的分区,如果没有就从2的i+1次方分裂。

10.虚拟内存

        段是信息的逻辑单位,页是信息的物理单位。一个程序被分为若干段,包括数据段、代码段、堆栈段。段更利于代码共享和调试

11.页面置换算法

        最佳置换算法:理想化的模型,不可能预知系统状态

        先进先出.LRU clock


猜你喜欢

转载自blog.csdn.net/weixin_36704535/article/details/80632663