操作系统概述

                                                 操作系统概述


操作系统:指控制管理整个计算机系统的软硬件资源,合理组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的程序集合
操作系统特性:并发、共享、虚拟、  异步
主要功能:处理器管理、存储器管理、  文件管理、设备管理、用户接口
发展:手工操作-->批处理-->分时操作系统-->实时操作系统-->网络/分布式系统-->个人操作系统
运行机制:时钟管理、中断机制、原语、系统控制的数据结构及处理
中断和异常:中断指与当前处理机处理的程序无关,并即刻占用处理机进行处理的事件;异常源自于CPU执行指令内部的事件,- -旦出现立即处理(如算数溢出、越界、缺页等)
系统调用:运行在核心态的特殊公共子程序,主要用于:设备、文件、进行、内存等管理

进程和线程区别
进程:是进程实体运行的过程,是系统进行资源分配和调度的一个独立单位。
使多个程序可以并发的执行,提高系统的资源利用率。
特性:动态、  并发、独立、异步;状态:就绪、执行、  阻塞线程:进程的一个实体, CPU调度和分配的基本单位,比进程更小且能独立运行,线程不直接拥有系统资源,线程间共享进程的系统资源。
联系:都能够并发执行;进程可以创建进程和线程; -个进程至少有一个线程;线程依赖于进程
区别
1.线程是更小的调度单位,是CPU调度的基本单位,具有更高的并发性
2.进程持有系统资源,而线程基本不拥有系统资源(除程序必须的栈、程序指针)。线程可以访问进程的资源。线程间可以共享内存资源
3.进程创建/销毁/切换,需要创建/回收PCB (进程控制块)、系统资源,保存/恢复CPU环境,而线程仅需要保存/恢复少量寄存器,代价更小

  进程任务调度
时间片轮转调度算法( RR) : 給毎个进程固定的执行时间,根据一定的先后順序辻进程在単位时间片内轮流抛行,不考慮迸程等待吋虑进程等待时间的执行时间,属于抢占式,适合分时系统。
先来先服务调度算法( FCFS) : 根据进程到达的先后順序执行,不考虑等待时间和执行时间,会发生飢餓現象,属于非抢占式调度,不利于短作业;
优先級调度算法(HPF) :在进程等待队列中选择有限先級最高的来执行; 
多级反馈队列调度算法:将时间片轮转与优先级调度相结合,把进程按优先级分成不同的队列,先按优先级调度,优先级相同的,按时间片轮转;兼顾长短作业,有较好的响应时间。
高响应比优先级调度算法:响应比 = (进程执行时间 + 进程等待时间) / 进程执行时间;有做执行的时间越短,响应比越高;响应比会随着等待时间增加而变大;能够避免饥饿现象;计算响应比开销大。

进程间通信
管道:有名管道和无名管道;无名管道是半双工通信,只能在具有亲缘关系(父子关系)的进程间使用;有名管道也是一种半双工通信,运行无亲缘关系的进程通信信号量:-种计数器,控制多个线程对共享资源的访问;
信号:一种比较复杂的通信方式,用于通知接收进程某个事件的发生
消息队列:消息队列是消息的链表,存放在内核中并由消息队列标识符标识。消息队列是UNIX中进程之间实现共享资源的一种机制,允许进程将格式化的数据流以消息队列形式发送给任意进程
共享内存:映射一段能被其他进程所访问的内存,往往与其他通信机制(如信号量)配合使用,是最快的进程间通信方式
套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字,是一套数据通信的机制和接口;还能够通过网络与不同机器之间进行通信

线程/进程同步
  临界区;通过对多线程串行化来访问公共资源或代码。在任意时刻只允许一个线程对共享资源进行访问,一个线程进入后,其他试图访问公共资源的线程将被挂起,临界区被释放后其他线程才能抢占互斥量:采用互斥对象机制,拥有互斥对象的线程才有访问公共资源的权限。互斥对象只有一个,所能保证公共资源不会同时被多个线程访问。互斥能用于同个进程的线程或者不同进程的线程;
  信号量:信号量通过一个计数器控制对共享资源的访问,信号量的值是一个非负整数,所有通过它的线程都会将该整数减一。如果计数器大于0 ,则访问被允许,计数器减1 ;如果为0 ,则访问被禁止,所有试图通过它的线程都将处于等待状态。定义成PV操作原语( P操作申请资源/V操作释放资源)
  事件 :通过通知操作的方式来保持线程的同步

 死锁的条件及处理方式
  死锁原因:
1.竞争资源:请求同一有限资源的进程数多于可用资源数; 
2.进程推进顺序非法;
  产生必要条件: 
1互斥条件:进程对所分配的资源进行排他性的使用; 
2.请求和保持条件:进程被阻塞的时候并不释放所申请到的资源; 
3.不可剥夺条件:进程对于已经申请到的资源在使用完成之前不可以被剥夺; 
4.环路等待条件:发生死锁的时候存在的一个“进程资源”环形等待链
  死锁处理: 
1. 预防死锁:破坏死锁的必要条件,实现简单,会降低系统资源利用率和吞吐量; 
2.避免死锁:在资源的动态分配中,防止系统进入不安全状态(银行家算法) ; 
3.检测死锁:允许系统运行过程中产生死锁,在死锁发生之后,采用一定的算法进行检测,并确定与死锁相关的资源和进程; 
4.解除死锁:。对检测到的和死锁相关的进程以及资源,通过撤销或者挂起的方式,释放-些资源井将其分配给处于阻塞状态的进程,使其转变为就绪态


 

  




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值