1.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是次。
缺页中断:要访问的页不在主存,需要操作系统将其调入主存后再进行访问。
LRU算法(最近最久未使用和最少使用):
当要调入一页而必须淘汰旧页时,将最近最少使用的置换出去
缺页中断次数=进程的物理块数+页面置换次数
总共进行了两次页面置换,所以缺页数=3+2=5,缺页率为5/10=0.5;
系统为某进程分配了4个页框,该进程已访问的页号序为2,0,2,9,3,4,2,8,2,4,8,4,5。若进程要访问的下一页的页号为7,依据LRU算法,应淘汰页的页号是2
1.缺页中断产生后,需要在内存中找到空闲页框要分配给需要访问的页(可能涉及到页面置换,把老页面置换出去,新的置换回来)。
2.之后缺页中断处理程序调用设备驱动程序做磁盘I/O,将位于外存上的页面调入内存。
3.调入后需要修改页表,将页表中代表该页是否在内存的标志位(或有效位)置为1,并将物理页框号填入相应位置。
单任务系统(不能并行执行,只能并发执行)中两个程序A和B,其中
A程序:CPU:10s ->设备1:5s -> CPU:5s ->设备2:10s ->CPU:10s;B程序:设备1:10s-> CPU:10s ->设备2:5s ->CPU:5s ->设备2:10s;执行顺序为A->B,CPU的利用率:40/80=0.5
A程序,CPU时间为10+b10=25s,程序运行总时间为10+5+5+10+10=40s;
B程序,CPU时间为10+5=15s,程序运行总时间为10+10+5+5+10=40s;
CPU总时间为40s,两个进程的总时间为80s
程序中断:计算机执行现行程序的过程中,出现某些急需处理的异常情况和特殊请求,cpu暂时终止现行程序,而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,cpu将自动返回原来的程序继续执行。
键盘输入的时候,进程需要中断进行IO读取,所以会导致程序中断运行,转而进行IO;比较典型的就是scanf
计算结果溢出就会截断,并不会导致程序中断运行
一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近()
电脑的主频(GHZ)︰CPU在1秒时间内,可以执行的简单指令的数量是xxG条。CPU执行一条语句大约时间约1ns即10的-9次方秒
1G=1024M=1024*1024k=1024*1024*1024byte,
每次赋值1byte都要执行一次语句,
故至少花费1024*1024*1024*10^-9=1.073741824s
平均耗时从小到大排序为 内存数据、一次磁盘寻道、从硬盘连续读取
进程从外设读入并分析2个数据块的最短时间是
第1次分析与第二次读外设并行执行
数据块1从外设到用户工作区的总时间为105,在这段时间中,数据块2没有进行操作。
在数据块1进行分析处理时,数据块2从外设到用户工作区的总时间为105,这段时间是并行的。再加上数据块2进行处理的时间90,总共是300.
100+5+MAX(90,100)+5+90==100+5+100+5+90=300
设置Cache的理论基础,是程序访问的局部性原理,Cache的功能均由硬件实现,对程序员是透明的,Cache是介于中央处理器和主存储器之间的高速小容量存储器,不属于主存的一部分。
磁盘缓存:属于内存,又称磁盘快取,下载到的数据先保存到系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏。
磁盘缓冲区:硬盘与PCI总线之间的容量固定的硬件
硬盘与外部总线交换数据的场所。硬盘的读数据的过程:磁信号转化为电信号后,通过缓冲区一次次地填充与清空,再填充,再清空,一步步按照PCI总线的周期送出,缓冲区的作用:提高性能,减少磁盘IO次数
但是它与缓存的不同之处在于;一、它是容量固定的硬件,而不像缓存是可以由操作系统在内存中动态分配的。二、它对性能的影响大大超过磁盘缓存对性能的影响,因为如果没有缓冲区,就会要求每传一个字(通常是4字节)就需要读一次磁盘或写一次磁盘。
存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
图中磁盘是一个3个圆盘6个磁头,7个柱面(每个盘片7个磁道)的磁盘,图中每条磁道有12个扇区,所以此磁盘的容量为:
存储容量6712*512= 258048磁盘读取响应时间
1.寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,IO操作越快,目前磁盘
的平均寻道时间一般在3-15ms,一般都在10ms左右。
2.旋转延迟:“片旋转将请求数据所在扇区移至读写磁头下方所需要的时间,旋转延迟取决于磁盘转速。普通硬盘一般都是7200rpm,慢的5400rpm。
3.数据传输时间:完成传输所请求的数据所需要的时间。
磁盘的固定块大小设置大了,存储小块文件的时候,分配一个块的大小绰绰有余,就会导致该块当中空闲的空间也不能分配给其他的程序,从而磁盘的利用率就会降低,提高整个磁盘的吞吐量,每次分配的块比之前的大,在块数相同的情况下,分配的空间更大。
某系统中有11台打印机,N个进程共享打印机资源,每个进程要求3台,当N的取值不超过5时系统不会发生死锁。哲学家就餐问题的思想解决此类问题,每个进程要求3台,所以先给每个进程2台,再如果多出一台,分给某一个进程,等这个进程执行完了,释放自己的资源(打印机)给其他进程用,这样就不会发生死锁。即2N+1=11,得N=5。
并发:并发是指两个或多个事件在同一时间间隔发生。
并行:并行是指两个或者多个事件在同一时刻发生。
1个比较耗时的操作,可以分成多个线程,并行的运行,提高程序的运行效率;多个线程在并行运行的时候,并不能比高内存的利用率,(多线程使用同一个虚拟地址空间),可以提高CPU的利用率;c/s服务端程序可以让一个线程为一个客户端去服务,典型的就是tcp的服务端程序。
数据总线、地址总线、控制总线,通常与数据总线位数对应相同的部件是CPU
地址总线:决定内存数据操作的地址(4G)
1、CPU是通过地址总线来指定存储单元的。
2、地址总线决定了CPU能访问的最大内存空间的大小。3、地址总线是地址线数量之和。
数据总线:决定传输的数据值。(字长大小)
1、决定一次数据传输可决定的数据大小。
2、数据总线的宽度决定了CPU和外界的数据传送速度。3、每条传输线只能传递1位二进制数据。
4、数据总线是数据线条数之和。
控制总线:反映了数据的状态和传输方式。
1、CPU通过控制总线对外部器件进行控制。
2、控制总线的宽度决定了CPU对外器件的控制能力。3、控制总线控制线数量之和。
地址总线当中每一根地址线都可以模拟0/1信号,所以,32位操作系统有32根地址线,64位操作系统有64根地址线。而32位操作系统的地址为0x00000000-0xFFFFFFFF(就是32根地址线全为0-32根地址线全为1)(4G)
1个子进程可以从属于1个父进程
父进程被撤销时(终止),其所有子进程不被相应撤消
子进程被撤销时,其从属的父进程不被撤销
1个进程可以没有父进程或子进程
子进程还可以创建新的子进程,形成进程树结构模型。整个linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程。由0号进程创建1号进程〈内核态),1号负责执行内核的初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,并演变成用户态1号进程,即init进程。
每个线程都是独立被操作系统调度的,所以有独立的状态信息,改变进程里面主线程的状态不会影响到其他线程的行为,
终止一个进程比终止一个线程花费的时间多,因为线程只是一个执行流,不会讲进程资源释放掉。
线程切换花费的时间少
线程提高了不同执行程序间的通信效率:可以让进程的某一个线程执行通信任务,其他的线程做其他事情
进程调度是从就绪队列)选择一个进程投入运行
执行P(wait)操作、申请内存失败、启动IO设备:请求某一资源会进入阻塞态,
被高优先级进程抢占:被剥夺了处理机资源,进入就绪态,一旦得到处理机即可运行。
在单处理器系统中,同时存在有12个进程,则处于就绪队列中的进程数量最多:11个
在同一时刻,只能有一个进程可以拥有CPU资源
活跃度:线程或进程长时间得不到cpu占用
在使用锁保证现场安全时可能会出现活跃度失败的情况主要包括饥饿、和活锁、死锁等。【多线程除了死锁之外遇到最多的就是活跃度问题了】
饥饿:如果线程T1占用了资源R,线程T2又请求封锁R,于是T2等待。T3也请求资源R,当T1释放了R上的封锁后,系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后,系统又批准了T4的请求…,T2可能永远等待。
活锁:线程1可以使用资源,但它很礼貌,让其他线程先使用资源,线程2也可以使用卖源,但它很绅士,也让其他线程先使用资源。这样你让我,我让你,最后两个线程都无法使用资源。
活锁不会被阻塞,而是不停检测一个永远不可能为真的条件。除去进程本身持有的资源外,活锁状态的进程会持续耗费宝贵的CPU时间。
父进程创建子进程时,子进程会复制父进程的内存〈包括锁状态),有可能导致子进程陷入死锁状态,多线程会引起死锁,而多进程也会
有一个程序中有A,B,C三个线程同时对一个文件进行读写操作,其中的A,B是写进程只负责往里面写数据,C是读线程,同时把读取的数据从文件中删除,A线程单独写满文件需要10个小时,B单独写程序需要6小时,在线程需要15小时才能读取完整个文件,不考虑三个线程之间的相互影响的情况下现在5小时才能写满文件.
类似:两个水龙头注水,一个放水,问何时注满水池”的感觉。
总任务是单位1,A的写工作效率是1/10,B的写工作效率是1/6,C的读工作效率是1/15,那么总工作效率是1/10+1/6 - 1/15结果是1/5。
写满的总时间是:用单位1除以总工作效率五分之一,就是5小时
输出8个hello
int main( ) {
//假设fork创建子进程都会创建成功
//该fork执行之后,会创建出来一个子进程,加上本身的父进程,就会有两个进程
fork( );
//上面的两个进程都会执行fork,进而在产生两个子进程,加上之前的两个,总共4个进程
fork( );
//上面的4个进程都会执行该fork,进而在产生4个子进程,加上之前的4个,总共8个进程
fork( );
//所以,最终有8个进程,会执行下面的语句
printf( "helloin") ;
return 0;
}
int main(void){
http: //www .taobao . com
cout <<"welcome to taobao" << endl ;
return 0;}//程序运行正常
双斜杠之后的www.taobao.com被当做注释了,那么前面的http:是否合法,标签。
带标签的语句是一种特殊的语句,在语句前面有一个标识符〈即标签,上段代码中的http〉和一个冒号。使用goto label就可以跳到标签处执行,比如可以在代码中写goto http,这样就会执行cout语句
有一个变量int a=0,两个线程同时进行+1操作,每个线程加100次,不加锁,最后a的值是
1.如果两个线程并发的热行,线程A执行完毕,线程B执行,最终的值为200
⒉如果两个线程并行的执行,有可能就会导致程序结果的二义性,则最终的结果值有可能是小于200
内存抖动:内存页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动。
抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调出
补码=反码+1,补码来表示负数。
(1)用0,1,2表示;
(2)遇3进位;
于是3进制的数的补码同二进制的转换过程—样。(1)先求的10的3进制表示为0101;
(2)对10的3进制表示形式取反为2121;
(3)对取反后的三进制表示形式加1位等于2122;
交换机攻击:1.VLAN跳跃攻击2生成树攻击3.MAC表洪水攻击4.ARP攻击5.VTP攻击
DHCP攻击:DHCP欺骗攻击就是伪造真正的DHCP服务器为客户端主机分配一个错误的IP地址,
DHCP攻击针对的目标是网络中的DHCP服务器,原理:耗尽DHCP服务器所有的IP地址资源,使其无法正常提供地址分配服务。然后在网络中再架设假冒的DHCP服务器为客户端分发IP地址,从而来实现中间人攻击。
DHCP攻击原理:
DHCP没有认证机制,并不知道接收到的报文是否是同一个主机发送的,所以攻击者可以使用以下两种方式进行攻击。
1.攻击者发送大量的DHCP Discover报文,堵塞DHCP服务器处理速度,以至于瘫痪DHCP服务器。⒉制造大量的伪造MAC地址来请求地址,导致DHCP服务器中的IP地址耗尽。
目录遍历攻击是HTTP所存在的一个安全漏洞,它使得攻击者能够访问受限的目录,并在Web服务器的根目录以外执行命令。
DNS劫持=域名劫持,劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。
DDoS攻击:分布式拒绝服务攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力
MAC地址欺骗:利用mac欺骗阻止局域网内任意电脑使用网络
伪造DHCP服务器:真的DHCP服务器的资源ip资源耗尽,然后部署假的DHCP服务器,让主机向假的DHCP服务器请求
IP地址块为211.168.15.192/26、211.168.15.160/27和211.168.15.128/27三个地址块经聚合后可用地址数:126
HTTPS:在HTTP的基础下加入SSL,HTTPs的安全基础是SSL,加密的详细内容就需要SSL;对使用H面P传输的数据使用SSL进行加密传输,第三者即使从网络当中获取数据包内容,也会由于没有加密的密钥而导致无法解析传输的内容,从而达到加密的效果
系统平均响应时间最优的是‘短任务优先算法
1.短任务优先系统平均响应时间最短,但是往往不能确定所有任务的行时间
2.时间片轮转,适用于分时系统,但是增加了抢占以切换进程,算法性能依赖于时间片大小
分时操作系统︰是使一台计算机采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务的一种操作系统
3.先来先服务平均响应时间最长。不适用于分时操作系统
文章评论