知识点2

HASH 函数冲突处理方式包括:

  1. 开放定址法
  2. 再哈希法
  3. 链地址法
  4. 设置公共溢出区法

多线程
实现可重入函数时,引入的全局变量需要用互斥量加以保护
两个线程同时对简单类型全局变量进行写操作也需要互斥
线程同步的方法包括使用临界区,互斥量,信号量等
可重入函数不可以调用不可重入函数

子线程和父线程
1.孤儿进程
如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这是子进程的父进程就是init进程(1号进程)。init进程没有父进程.
2.僵尸进程
进程终止后进入僵死状态(zombie),等待告知父进程自己终止,后才能完全消失.但是如果一个进程已经终止了,但是其父进程还没有获取其状态,那么这个进程就称之为僵尸进程.僵尸进程还会消耗一定的系统资源,并且还保留一些概要信息供父进程查询子进程的状态可以提供父进程想要的信息.一旦父进程得到想要的信息,僵尸进程就会结束。
windows在父进程终止时不会强制撤销子进程

进程和线程
线程结构驻留在用户空间中
现代操作系统的多任务往往是基于线程的。线程是进程的组成部分。进程管理程序在创建进程之后,由进程创建一个或多个线程。线程的创建比进程快,调度的开销也小得多。因此,一个进程可拥有若干个线程。
线程的切换要比进程切换花费的时间少,
线程是系统调度的基本单位
OS看不见线程,所有进程是资源分配的基本单位

在单处理器系统中,如果同时存在有12个进程,则处于就绪队列中的进程数量最多为(11个),只能有一个进程处于运行状态

死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不bai当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。
其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立
操作系统中有若干进程并发执行,它们不断申请、使用、释放系统资源,虽然系统的进程协调、通信机构会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况。此时,若不借助外界因素,谁也不能释放资源,谁也不能解除阻塞状态。根据这样的情况,操作系统中的死锁被定义为系统中两个或者多个进程无限期地等待永远不会发生的条件,系统处于停滞状态,这就是死锁
处于运行状态的操作系统程序应放在主内存中

并发进程之间 可能出现并发或互斥

进程和程序的主要区别是
1)进程的定义:“进程”是操作系统的最基本、最重要的概念之一。但迄今为止对这一概念还没有一个确切的统一的描述。下面给出几种对进程的定义描述。进程是程序的一次执行。进程是可以并行执行的计算。进程是一个程序与其使用的数据在处理机上顺序执行时发生的活动。进程是程序在一个数据集合上的运行过程。它是系统进行资源分配和调度的一个独立单位。
2)进程的特征:动态性:是程序的一次执行;并发性:进程是可以并发执行;独立性:是系统进行资源分配和调度的一个独立单位;异步性:进程间的相互制约,使进程执行具有间隙;结构性:进程是具有结构的。
3)进程与程序的主要区别:
(1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
(2)程序是静态的观念,进程是动态的观念;
(3)进程具有并发性,而程序没有;
(4)进程是竞争计算机资源的基本单位,程序不是。
(5)进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序

在系统内存中设置磁盘缓冲区的主要目的是(磁盘和内存的速度差异,决定了可以将内存经常访问的文件调入磁盘缓冲区,从高速缓存中复制的访问比磁盘 I/O 的机械操作要快很多很多。)。

为了缓和CPU和I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区,并提供获得和释放缓冲区的手段。总结来说,缓冲区技术用到了缓冲区,而缓冲区的引入是为了缓和CPU和I/O设备的不匹配,减少对CPU的中断频率,提高CPU和I/O设备的并行性。

—次I/O操作的结束,有可能导致(一个进程由睡眠变就绪)。

一个进程的读磁区操作完成后,操作系统针对该进程必做的是( 修改进程为就绪态)

在使用锁保证现场安全时可能会出现 活跃度 失败的情况主要包括 饥饿、丢失信号、和活锁、死锁 等。【多线程除了死锁之外遇到最多的就是活跃度问题了
饥饿 :指线程需要访问的资源 被永久拒绝 ,以至于不能再继续进行。解决饥饿问题需要平衡线程对资源的竞争,如线程的优先级、任务的权重、执行的周期等。 活锁 :指线程虽然没有被阻塞,但由于某种条件不满足,一直尝试重试却始终失败。解决活锁问题需要对 重试机制 引入一些随机性。例如如果检测到冲突,那么就暂停随机的一定时间进行重试,这会大大减少碰撞的可能性。

下面选项中,满足短任务优先且不会发生饥饿现象的调度算法是(高响应比优先)。

进程用完一次时间片,说明该进程刚刚运行过,最好让别的进程运行,此时可降低其优先级。其他选项均不合理。如果进程刚刚完成I/O,此时可能很需要对I/O的结果进行处理,因此不应降低其优先级。如果进程长期处于就绪队列中,则其等待时间过长,需要的是升高其优先级,以防止饥饿,而不是降低优先级。如果进程从就绪队列转为运行状态,它刚刚获得CPU,控制权在该进程手上,在其完成其时间片之前无法降低优先级。

操作系统存在虚拟内存,能够把一部分优先级较低的程序保存到系统硬盘

1.当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞
2.当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行加锁的线程将会被阻塞
3.当读写锁在读模式的锁状态时,如果有另外的线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁的请求,这样可以避免读模式锁长期占用,而等待的写模式锁请求则长期阻塞。
存储保护
在采用虚拟存储技术的存储系统中,一个多任务的操作系统经常将多个不同的程序同时调入主存执行,因此,首先需要保证这些程序间不会相互覆盖,并且,一个程序不能访问其他程序的数据以及不是分配给他的主存区域。其次,一个程序出错不会破坏其他用户程序和系统程序。通过一些限制方式保护主存中程序的技术被称为存储保护。简单的说,存储保护就是对主存中的程序和数据进行保护。为了降低开销,在进行存储保护的时候,通常不会直接保护单个存储单元,而是以页或者段为单位进行保护。存储保护主要包括以下两个方面内容。
存储区域保护:
存储区域保护主要是为了防止地址越界。常用的存储区域保护方式有基于页表或段表的保护,键保护和环保护。
(1)基于页表或段表的保护。在分页式虚存中,每个程序的虚页号是固定的经过地址变换后的实存页号也是固定的。这样,程序只能访问或影响到相应的主存页面,不会影响或访问其他程序空间。
在分段式虚存中,段表和页表的保护功能类似,但段表还需要记录段的上界,下界和段长,这样就很容易保证程序访问的地址不越界。
(2)键保护方式:操作系统为主存中的每一页分配一个键,通常被称为存储键,用于指明保护的等级。!存储键相当于一把锁,只有拥有打开这把锁的钥匙才能访问相应的页面。而钥匙就是操作系统为每道程序分配的!访问键,该访问键通常保存在!该道程序的《状态寄存器》中。当程序要访问主存的某一页时,程序的访问键要与该页的存储键!进行比较。若两键相符,则允许访问该页,否则拒绝访问。
(3)环保护方式:操作系统按照系统程序和用户程序的重要性及对整个系统正常运行的影响程度,将程序分为多个保护级别(层),每个级别称为一个环,这样,各个级别就构成了同心环。在现行程序运行前由操作系统为程序设置!个页的环号,并置入页表中。并将该道程序的开始环号保存在CPU的<现行环号寄存器》中。程序可以访问任何外层空间。访问内层空间则需要由操作系统的环控《例行程序》判断这个向内访问是否合法。pentium微处理器采用环保护方式。
访问方式保护
访问方式保护是为了保证程序不能对主存执行非授权的操作,通常,通过对页表或者段表设置访问权限标志位来实现。
对内存信息的使用可以有以下三种方式:读(R),写(w)和执行(E),因此相应的访问权限就是R,W,E三种方式形成的逻辑组合。例如,R+W+E表示可以进行任何访问(全权限),(R+W)*E表示能够读和写但不能执行。
通常,操作系统对每个程序访问方式保护的规定如下:《对本程序所在存储区域拥有全权限。对共享!数据区域(或获得授权的其他用户数据区域)可读不可写。对共享程序区域(或获得授权的其他用户程序区域)!可执行。对操作系统内核等非授权区域不可访问。
这种访问方式经常和存储区域保护结合起来实现。例如基于页表和段表的保护方式下,通常将访问方式“位”保存在段表和页表中,使得同一个段内的不同页有不同的访问方式。这样可以提高保护的灵活性。
存储保护一般以硬件保护为主,以降低系统实现开销,提高保护效率。当发生访问越界等非法操作时,硬件产生中断,进入操作系统处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值