目录
参考:https://blog.csdn.net/justloveyou_/article/details/78304294
1.cpu 4核是什么
4核指的是物理核心,单个物理核同一时间点只能处理一个线程。但是支持并发
线程是 CPU 的概念,CPU看到的是线程,线程是安排CPU执行的最小单位。对于操作系统来说,线程是调度的基本单位;当操作系统调度程序考虑接下来在CPU上调度什么时,只需查看系统上的活动线程。进程如若执行,至少要包含一个线程;一个新进程开始运行时,操作系统会自动为其创建初始线程。
进程是操作系统上的概念,是操作系统进行资源(包括cpu、内存、磁盘IO等)分配的最小单位
在计算机中内存和 CPU 的资源都是有限的,所以,内存和 CPU 的资源竞争都非常激烈。内存的资源竞争,操作系统是通过虚拟内存分页解决的(页的换入换出实现大内存)。CPU 的资源竞争则是通过调度(Schedule)解决的
所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核模拟两个虚拟核,每个核两个线程,总数为8线程。单个物理核同一时间点只能处理一个线程,通过超线程技术可以实现单个物理核实现线程级别的并行计算,但是比不上性能两个物理核。
2.linux 常用命令
3.临界区:
每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。
4. 什么是中断?中断时CPU做什么工作?
中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
操作系统的内存管理方式(内存模型)
操作系统采用段页存储的管理方式。对于用户来说,程序被分为若干段加载到内存(代码段,数据段,栈,堆等等),程序按段放在内存中,在进程中(PCB)存放有段表(LDT) 表放段号和段基址。对于物理内存采用页存储的管理方式,将内存分为固定大小的页。用虚拟内存将段存储和页存储结合起来,用户程序在虚拟内存中是按段存储,段在划分为页,每个段对应一张页表。页表记录页号对应的物理内存页框,为防止页表过大,采用多级页表机制。
多级页表
32位多级页表划分
逻辑地址 是代码中的地址
虚拟地址:虚拟内存中地址,也叫线性地址,是逻辑地址变换到物理地址的中间层。表现形式为页号
虚拟内存作用:实现用户眼中的大内存,通过分页换入换出的方式扩大物理内存。使一个大的用户程序能在小内存中运行。也可使内存中装入更多的进程。
页面置换算法
段页存储的区别
进程的一些知识点
进程上下文切换过程:
@1.由中断、异常、系统调用等触发中断,将cpu切换为内核模式,将eip,esp,eflages压入内核堆栈;
@2.保存硬件未来得及保存的现场信息;
@3.调用中断服务程序;
@4.检查need_resched标志位,若有效则进行以下步骤@5;
@5.调用schedule()函数完成进程调度,schedule()会执行以下步骤@6,@7;
@6.调用pick_next_task()根据相关调度算法得到下一个待运行的进程;
@7.调用context_switch()执行以下步骤@8,@9;
@8.调用switch_mm()将虚拟内存地址映射到待运行进程,恢复内存管理相关信息。
@9.调用switch_to()保存原来进程的cpu现场信息,恢复待运行进程的cpu现场信息;
@10.中断返回,弹出eip,esp,eflages,将cpu切换为用户工作模式;
进程调度算法
进程间通信的方式
关于死锁
定义: 就是两个或多个进程无限期的阻塞、相互等待的一种状态
以下是上述死锁知识的具体阐述
线程
进程的状态:
创建(new)、就绪(runnable/start)、运行(running)、阻塞(blocked)、等待(waiting)、时间等待(time waiting) 和 消亡(dead/terminated)。