![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 51
江南野栀子
人在红尘里,心在山水间。
展开
-
1 操作系统OS概述-万里长征第一步
主要功能 处理机管理,可以归结为进程管理 存储器管理,对内存进行分配、保护和扩充 设备管理,包括设备分配、传输控制和保持设备独立性 文件管理,包括存储空间的分配和回收,目录管理、文件操作管理和文件保护等功能 用户接口,包括程序接口和操作接口,用户通过这些接口能方便的调用操作系统的功能,有效的组织作业和处理流程,使整个系统能高效的运行。类型 单用户 批处理 分时 网络 分布式 嵌入式特性 并发性...原创 2020-05-28 14:31:30 · 217 阅读 · 0 评论 -
2.1 CPU管理--进程介绍
进程介绍 进程定义:一个具有独立功能的程序关于数据集合的一次可以并发执行的运行获得,是系统进行资源分配和调度的基本单位。 具有动态性和并发性,需要一定的资源(如CPU时间、内存、文件和I/O设备等)来完成任务 进程创建 1)系统初始化 例如同人机交互并替他们完成工作的前台进程 例如停留在后台处理电子邮件、打印等活动的进程,称为守护进程 2) 正在允许的程序执行了创建进程的系统调用 ...原创 2020-05-28 14:38:20 · 673 阅读 · 0 评论 -
2.2 CPU管理--进程状态和层次结构
三态模型 运行、就绪、阻塞五态模型 运行,静止就绪、活动就绪、静止阻塞、活动阻塞;静止时候在外存,活动在内存 五态比三态多了挂起/激活的动作,即将某些进程放到磁盘兑换区,暂时不参加调度,以均衡负载 挂起的原因:系统出现故障、用户调试程序,或者检查问题等Windows中没有进程层次的概念,所有的进程都是地位相同的,唯一类似于进程层次的暗示是再创建进程时候,父进程得到一个特别的令牌(句柄),该句柄可以用来控制子进程。但是它有权把这个令牌送个其他进程,这样就不存在进程层次了UN...原创 2020-05-28 15:25:50 · 409 阅读 · 0 评论 -
2.3 CPU管理--多道程序
定义:是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。特征:多道、宏观上并行、微观上串行。目的:提高CPU的利用率详解:一个进程等待I/O操作的时间与其再内存中停留的时间比为p,当内存中同时有n个进程时候,CPU空转的概率为p*p*p...p,n个p相乘,那么CPU利用率为1-n个p相乘;其中n被称为道数从上可以看出增加内存就可以增加道数,增加了道数CPU利用率就上升了,当然不是无限的上升...原创 2020-05-28 15:28:14 · 726 阅读 · 0 评论 -
2.4 CPU管理--信号量和PV操作
进程间关系 同步是为了进程合作直接发生相互作用,能共同完成一项任务,为进程之间的直接制约关系。 互斥主要在于资源共享,是进程之间的间接制约关系,每次只能运行一个进程访问的资源称为临界资源。每个进程种访问临界资源的程序段称为临界区。进程互斥可以用硬件方法(机器指令) 开关中断指令(硬件锁),只适用于单CPU系统;进程在进入临界区前先执行关中断指令屏蔽所有中断,进程完成临界区的任务后再执行开中断指令将中断打开。如果是多CPU那么无法屏蔽其他CPU。 测试与设置指令TS,为每个...原创 2020-05-28 15:37:27 · 835 阅读 · 0 评论 -
2.5 CPU管理--进程同步经典问题-司机和售票员问题
上一小节讲了PV信号量的概念,还有进程同步、异步的概念,现在我们用实际的问题来使用PV信号量。如下图,公共汽车上,司机和售票员各司其职。司机需要等售票员关好门之后才能启动车,售票员只有等司机停好车后才能开车门,两者必须配合默契,协调一致。设置信号量Start来控制是否可以让司机启动汽车,初值为0;设置信号量Open控制是否可以让售票员开启车门,初值为0;这表示当前状态是汽车未启动且车门已经打开,不允许司机启动汽车,也不允许售票员开车门。相关代码如下:Seamphore Start原创 2020-11-09 17:18:46 · 2298 阅读 · 0 评论 -
2.6 CPU管理--进程同步经典问题-生产者消费者问题
生产者-消费者问题(Producer-Consumer Problem)所谓消费者是指使用某个软硬件资源的进程,而生产者指提供(或者释放)某一个软硬件资源的进程可以抽象为生产者和消费者共享一个有界缓冲池,这个有界缓冲池设置三个信号量empty,full,mutex;Set empty=N,full=0,mutex=1 #empty为N,full为0 是假设目前有界缓冲池都是空着的情况Producer(){ While(1) { P(empt...原创 2020-11-09 17:24:51 · 162 阅读 · 0 评论 -
2.7 CPU管理--进程同步经典问题-哲学家进餐问题
哲学家进餐(Dining Philosopher)多进程同步问题描述:五个哲学家同坐再一张圆桌旁,每个人的面前放着一碗面条,碗的两旁各放着一只筷子。假设哲学家的生活除了吃饭就是思考问题,吃饭时候需要左手拿一个筷子,右手拿一个筷子,然后开始进程。吃完后又将筷子放回原处,继续思考问题。那么一个哲学家的活动进程可以表示为:思考问题 饿了停止思考,左手拿一只筷子(如果左侧哲学家已经持有这根筷子,则需要等) 右手拿一只筷子(如果右侧哲学家已经持有这根筷子,则需要等) 进餐 放右手筷子 放左手筷子原创 2020-11-09 17:31:08 · 368 阅读 · 0 评论