Loading

随笔分类 -  操作系统

摘要:内存管理 #专业课 内存的分配和回收 1.操作系统负责内存空间的分配与回收 2.操作系统需要提供某种技术从逻辑上对内存空间进行扩充. 3.操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换。 4. 操作系统需要提供内存保护的功能,保证各个进程在内存空间内运行互不干扰 内存保护 方法一: 阅读全文
posted @ 2023-02-02 10:05 nliuc 阅读(91) 评论(0) 推荐(0)
摘要:内存 什么是内存 内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。 存储单元 内存中有存储单元,类似于一个个的小房间,这些小房间叫做内存地址,从0开始,每个地址对应一个存储单元。 如果计算机"按字节编址",则每个存储单元大小为1字节,即1B,即8个二进制位。如果字长为16位的计 阅读全文
posted @ 2023-02-02 10:03 nliuc 阅读(231) 评论(0) 推荐(0)
摘要:预防死锁 不允许死锁的发生 静态策略:预防思索 破坏互斥条件 如果能把互斥使用的资源改造为允许共享使用,则系统不会进入死锁状态,比如SPOOLing技术,操作系统可以采用SPOOLing技术把独占设备在逻辑上改造为共享设备。 使用了SPOOLing技术后,在各进程看来,自己对打印机资源的使用请求立即 阅读全文
posted @ 2023-02-02 10:01 nliuc 阅读(367) 评论(0) 推荐(0)
摘要:死锁 概念定义 什么是死锁 在并发环境下,各进程因竞争资源造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的线性,就是死锁,发生死锁后,若无外力干涉,这些进程都将无法向前推进 进程死锁、饥饿、死循环的区别 死锁 死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现 阅读全文
posted @ 2023-02-02 09:58 nliuc 阅读(188) 评论(0) 推荐(0)
摘要:概念定义 为什么要引入管程 信号量机制的存在的问题:编写程序困难,容易出错 能不能设置一种机制,让程序员写程序时不需要再关注复杂的PV操作,让写代码更轻松? 1973年,Brinch Hansen首次再程序设计语言Pascal中引入了管程成分–一种高级[[002-3-1-1 同步 |同步]]机制 管 阅读全文
posted @ 2023-02-02 09:56 nliuc 阅读(255) 评论(0) 推荐(0)
摘要:典型进程问题 生产者-消费者 #专业课 问题描述 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区取出一个产品并使用。 生产者、消费者共享一个初始为空,大小为n的缓冲区。 只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。[同步关系]只要 阅读全文
posted @ 2023-01-23 18:01 nliuc 阅读(54) 评论(0) 推荐(0)
摘要:信号量实现互斥、同步、前驱关系 信号量机制实现进程互斥 分析并发进程的关键活动,划定临界区(如:对临界资源打印机的访问就应该放在临界区)设置互斥信号量mutex,初值为1在临界区前执行P(mutex)在临界区后执行V(mutex) 代码示例 /*信号量机制实现互斥*/ semaphor mutex= 阅读全文
posted @ 2023-01-23 17:55 nliuc 阅读(220) 评论(0) 推荐(0)
摘要:信号量机制 引例 进程互斥的四种软件实现方法: 单标志法双标志先检查法 进入区“检查”,上锁指令无法一气呵成,从而导致了所有进程都有可能进入临界区的问题 双标志后检查法Peterson算法 进程互斥的三种硬件实现方法: 中断屏蔽方法TS/TSL指令Swap/XCHG指令 所有的解决方法都无法实现“让 阅读全文
posted @ 2023-01-20 11:26 nliuc 阅读(174) 评论(0) 推荐(0)
摘要:互斥的软件实现方法 单标志法 算法思想 两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程,也就是说每个进程进入临界区的权限只能被另一个进程赋予。 代码示例 int turn =0; //turn 表示当前允许进入临界区的进程号 P0代码 P0进程: while(turn != 0); ① 阅读全文
posted @ 2023-01-20 11:20 nliuc 阅读(155) 评论(0) 推荐(0)
摘要:进程同步与互斥 什么是进程同步 同步又称直接制约关系,它是指为了完成某种任务而创建的两个或多个进程,这些进程因为需要在某些位置上协调他们的工作次序而产生制约关系。进程间的直接制约关系就是源于他们的相互合作。 什么是进程互斥 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用。但是一个时间段内 阅读全文
posted @ 2023-01-20 11:17 nliuc 阅读(146) 评论(0) 推荐(0)
摘要:优先级调度算法 算法思想 随着计算机的发展,特别是[[001-1-3-发展#实时操作系统 |实时操作系统]]的出现,越来越多的应用场景需要根据任务的紧急程度来决定处理顺序 算法规则 每个作业/进程有各自的优先级,调度时选择优先级最高的作业/进程就绪队列未必只有一个,可以按照不同的优先级来组织可以把优 阅读全文
posted @ 2023-01-20 11:13 nliuc 阅读(572) 评论(0) 推荐(0)
摘要:高响应比优先 算法思想 要综合考虑作业/进程的等待时间和要求服务时间 算法规则 在每次调度的时候要先计算各个作业/进程的相应比,选择相应比最高的作业/进程为其服务相应比=等待时间+要求服务时间/要求服务时间 用途和模式 既可用于作业调度,也可用于进程调度 是否可抢占 非抢占式的算法。因此只有当前运行 阅读全文
posted @ 2023-01-20 11:10 nliuc 阅读(418) 评论(0) 推荐(1)
摘要:短作业优先 (SJF Shortest job First) 算法思想 追求最少的平均等待时间,最少的平均周转时间,最少的平均平均带权周转时间 算法规则 1.最短的作业/进程优先得到服务(所谓"最短",是指要求服务时间最短) 用途和模式 即用于作业调度,也可以用于进程调度用于进程调度时候,称为"短进 阅读全文
posted @ 2023-01-20 00:04 nliuc 阅读(1046) 评论(0) 推荐(0)
摘要:10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先服务调度算法与思想 10-先来先 阅读全文
posted @ 2023-01-19 16:34 nliuc 阅读(99) 评论(0) 推荐(0)
摘要:处理机调度的概念、层次 基本概念 调度的基本概念:当我们有一堆任务要处理,由于当前资源有限,我们就需要用某种规则来决定这些任务的顺序.这就是调度研究的问题 在多道系统中,进程的数量往往是多于处理机个数的,这样不可能同时并行的处理各个进程 处理机调度,就是从就绪队列中按照一定算法选择一个进程并将处理机 阅读全文
posted @ 2023-01-19 16:31 nliuc 阅读(124) 评论(0) 推荐(0)
摘要:进程通信 进程通信的基本概念 进程通信可以通过共享存储、消息传递、管道通信这三个方式实现 进程通信:进程之间的信息交换 进程是分配系统资源的单位,因此各进程拥有的内存地址空间相互独立 为了保证安全,一个进程不能直接访问另一个进程的地址空间,但是进程之间的信息交换又是必须实现的,为了保证进程间的安全通 阅读全文
posted @ 2023-01-19 16:26 nliuc 阅读(60) 评论(0) 推荐(0)
摘要:进程的定义、组成、组成方式 程序 #专业课 程序:就是一个指令序列. 单道程序阶段 早期的计算机只支持单道程序,CPU和内存是联的.在这个阶段,内存中只会存放运行一个程序内存中包含了程序段、数据段程序的代码放在程序段中,程序运行的数据放在数据段内(如变量)程序段存放在内存的低地址部分,数据段存放在内 阅读全文
posted @ 2023-01-19 16:25 nliuc 阅读(136) 评论(0) 推荐(0)
摘要:系统调用 概念说明 系统调用是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。 应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管。因此在用户程序中,凡是与资源有关的操作( 阅读全文
posted @ 2023-01-19 16:16 nliuc 阅读(66) 评论(0) 推荐(0)
摘要:中断和异常 #专业课 中断 中断的诞生 中断机制的诞生:早期的计算机中,各个程序只能串行的执行,系统的资源利用率低。 为了解决上述问题,人们发明了操作系统(做为计算机的管理者),引入了中断机制,实现了多道程序并发执行。 本质:发生中断意味着需要操作系统接入,开展管理工作 其中,操作系统内核负责对中断 阅读全文
posted @ 2023-01-19 16:13 nliuc 阅读(89) 评论(0) 推荐(0)
摘要:操作系统的运行机制和体系特征 预备知识 预备知识:什么是指令? C语言写完的代码经过翻译之后,会翻译成机器语言的指令。一条高级语言的代码翻译过来可能会对应多条指令。 简单来说:指令就是处理器(CPU)能够识别、执行的最基本命令。 运行机制 操作系统的运行机制包括了两种指令[特权指令,非特权指令]、两 阅读全文
posted @ 2023-01-19 16:11 nliuc 阅读(89) 评论(0) 推荐(0)