操作系统篇

操作系统的特征:并发、共享、虚拟、异步

一、死锁

多个进程因循环等待资源而造成无法执行的现象
死锁产生条件:
1、互斥使用:进程一段时间内某资源只由一个进程占用。
2、不可抢占:进程在获得资源未使用完成之前不能被抢占
3、请求和保持:该进程已经保持了至少一个资源,但是提出新的请求
4、循环等待:指在发生死锁时,必然存在一个进程——资源的环形链
处理方法:预防死锁(破坏四个条件,如优先级高的进程可以抢占)、避免死锁(银行家算法)、检测死锁(死锁定理,即资源管理图不可完全简化)、解除死锁(人工解锁,强行结束进程)
简述银行家算法:在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先依次检测分配资源的安全性,即是否有足够的资源分配给该进程,若分配会导致系统进入不安全状态则不分配,反之分配。

二、线程与进程

进程
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
线程
线程也被称为轻量进程,是独立运行和独立调度的基本单位。它被包含在进程之中,是进程中的实际运作单位。一个进程中可以并发多个线程,每条线程并行执行不同的任务。
进程特征:
1、动态性:进程的实质是程序在多道程序系统中的一次执行过程
2、并发性:任何进程都可以同其他进程一起并发执行
3、独立性:进程是一个能独立运行的基本单位
4、异步性:进程按各自独立的、不可预知的速度向前推进
进程组成结构:程序、数据和进程控制块
进程基本状态:
1)就绪状态:进程已获得除cpu外的所有必要资源
2)运行状态:进程已经获得cpu,程序正在执行
3)阻塞状态:正在执行的进程发生某事件(如I/O操作)暂时无法继续执行。
程序和进程区别
1、程序是指令和数据的有序集合,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
2、进程是有一定生命期的。程序是永久的,进程是暂时的。
3、同一程序可以对应多个进程。
进程间通信
进程通信是指在进程间传输数据
低级通信:进程的同步与互斥
高级通信
1、共享存储器系统:相互通信的系统共享某些数据结构或共享存储区,通过这些空间通信
2、管道通信系统:连接一个读进程和一个写进程以实现他们之间通信的一个共享文件
3、消息传递系统:进程不借助任何共享存储区或数据结构,而是以格式化的消息为单位,将数据封装在消息中,利用操作系统提供的通信命令进行通信
4、客户机-服务端系统:通过协议进行通信,分为套接字,远程过程调用和远程方法调用
进程调度(处理机调度)种类:
高级调度:称为作业调度,它决定把后备作业调入内存运行
中级调度:称为在虚拟存储器中引入,在内、外存对换区进行进程对换
低级调度:称为进程调度,它决定把就绪队列的某进程获得CPU
作业调度算法
先来先服务FCFS 、短作业优先SJF、优先级调度(等待时间长则优先级高)、高响应比优先(综合等待时间和要求服务时间综合比值)
进程调度算法
优先级调度算法:分为非抢占、抢占、静态、动态
轮转调度算法:每个进程执行一个时间片
多级反馈队列调度算法:设置多个队列,第i+1个时间片比第i个时间片长一倍,每新来一个队列,先使用FCFS,如果时间片用完还没执行完,则降一个队列级别,最后一个队列使用轮转调度算法
进程与线程的区别
1、进程是资源分配的基本单位;线程是程序执行的基本单位。
2、进程拥有自己的资源空间,没启动一个进程,系统就会为它分配地址空间;而线程与CPU资源分配无关,多个线程共享同一进程内的资源,使用相同的地址空间。
3、一个进程可以包含若干个线程。
进程和线程优劣
1、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式。
2、线程的调度与切换比进程快很多,同时创建一个线程的开销也比进程要小很多。
3、但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

三、多任务

(一)、多道程序
CPU资源比较珍贵,为了让CPU得到更好的利用,把暂时无需使用的CPU用于其他正在等待CPU资源的程序,称为多道程序。缺点是不分轻重缓急
分时系统:改进多道程序,使得每个程序运行一段时间就主动让出CPU资源
(二)、多任务系统
操作系统从最底层接管了所有的硬件资源,所有应用程序在操作系统之上以进程的方式运行,每个进程拥有自己独立的地址空间,相互隔离。CPU统一由操作系统进行分配

四、操作系统的发展过程与组成部分

未配置操作系统的计算机系统–>单道批处理系统–>多道批处理系统–>分时系统–>实时系统–>微机操作系统
一个操作系统有六个组成部分: 1、进程管理 2、存储管理 3、设备管理 4、文件管理 5、程序接口 6、用户界面

五、PV操作

1、同步与互斥是什么?
互斥:是指散布在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这个程序片段后才可以运行。
同步:是指散布在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。
总结:同步是一种更为复杂的互斥,而互斥是一种特殊的同步。互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程。
2、什么是临界区?如何解决冲突?
每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。
(1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入
(2)任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待
(3)进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区
(4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象
3、线程同步的方式有哪些?
互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问
信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量
事件(信号):通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作

六、什么是缓冲区溢出?有什么危害?其原因是什么?

缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
危害
1)程序崩溃,导致拒绝服务
2)跳转并且执行一段恶意代码
原因:程序中没有仔细检查用户输入。
七、分页和分段有什么区别?
1、段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
2、段的大小不固定,由它所完成的功能决定;页大小固定,由系统决定
3、段向用户提供二维地址空间;页向用户提供的是一维地址空间
4、段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制。

八、虚拟存储的意义和方法?

根据程序执行的互斥性和空间与时间局域性两个特点,允许作业装入时候只装入一部分,另一部分存放在磁盘上,调用时候将常用的放入内存,其他暂时不用的放入外存中。这样一个小的主存空间也可以运行一个比它大的作业。常用的虚拟存储技术有分页分段存储管理。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值