一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是 5 次。
1第一次(缺1)
3 1第二次(缺3)
2 3 1第三次(缺2)
1 2 3(刚使用的放在前面未使用的依次后移)
2 1 3
1 2 3
5 1 2第四次(3是最少使用的所以换出)
1 5 2
2 1 5
3 2 1第五次(5是最少使用的所以换出)
可重入函数可认为是可以被中断的函数,自动变量定义的时候才被创建,函数返回时,系统回收空间,他是的是局部作用域变量,不需要互斥量。可重入函数对全局变量才需要互斥量保护。
满足下列条件的函数多数是不可重入的:
(1)函数体内使用了静态的数据结构;
(2)函数体内调用了malloc()或者free()函数;
(3)函数体内调用了标准I/O函数。
死锁
若系统中存在多个进程,它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,那么这种等待永远都不能结束,就称为系统出现了“死锁”。
生成死锁的4个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
进程自己进入死循环只能产生饥饿,饥饿可能由一个进程导致,而死锁一定要有2个或2个以上的进程才会导致;
设备分配方式分为 独立分配方式, 共享方式 ,虚拟方式,共享设备适合于独立分配方式和共享分配方式,独立分配方式容易引发死锁,共享设备允许多个进程申请使用,不会造成死锁
大小端
a) Little-Endian就是低位字节排放在内存的低地址端, 高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。 整数0x12345678
如果是 Little-Endian:0x0-0x3内存分别存放的是:0x78、0x56、0x34、0x12;
如果是 Big-Endian :0x0-0x3内存分别存放的是:0x12、0x34、0x56、0x78;
使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的
CPU时间的数量级最接近(1s)
当代典型PC机运算速度可达10亿次/秒(10^9),即执行一条典型指令 1/1,000,000,000秒=1纳秒
1GB = 2^30 B = 8^10 B(8^10大小为10亿多一点)
访问速度耗时排序
对于普通的计算机, 对以下事件的平均耗时从小到大排序为
读取一次L2缓存 读取1KB内存数据 一次磁盘寻道 从硬盘连续读取
缓存 内存 磁盘寻道 硬盘
分页存储管理
在分页存储管理系统中,页面的大小是由计算机系统的地址结构所决定的,一般由软硬件共同决定。
分页式虚拟存储管理系统中,页面的大小与可能产生的缺页中断次数( 无关)
父进程 & 子进程
Linux中的init进程就没有父进程,因为它就不是通过fork的方式产生的
孤儿 & 僵尸
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
线程 & 进程
线程是系统调度的基本单位,进程是资源分配的基本单位
线程只能提高同进程之间的通信效率,程序间的通信效率显然还是要进程切换的
进程调度时,下列进程状态的变化过程哪一项是不可能发生的? 就绪挂起->阻塞挂起
磁盘缓存
在系统内存中设置磁盘缓冲区的主要目的是(减少磁盘 I/O 次数 )。
磁盘和内存的速度差异,决定了可以将内存经常访