
计算机操作系统
文章平均质量分 91
计算机操作系统
小馋喵星人
这个作者很懒,什么都没留下…
展开
-
【手写操作系统实战】01 - 安装Cygwin + bochs 环境
下载并安装: bochshttps://sourceforge.net/projects/bochs/files/bochs/安装的时候,注意勾选 DLX Linux Demo,这样我们可以复制其中的 bochsrc.bxrc 以它为模板,来编写配置文件。最简单的配置文件bochsrc.bxrc内容如下,配置成从软盘启动:# how much memory the emulated machine will havemegs: 32# filename of ROM imagesromim原创 2022-04-21 17:49:54 · 1446 阅读 · 0 评论 -
处理机调度算法详解----进程调度
处理机调度算法详解----进程调度一、轮转调度算法二、优先级调度算法进程调度调度的对象是进程,其主要任务是根据某种算法,选取处于就绪队列中的进程,并由分派程序将处理机分配给被选中的进程。进程调度是一种最基本的调度,在多道批处理、分时和实时等OS中,都必须要配置这级调度。其执行周期最短,也就是执行频率最高,分时系统中10-100ms便要进行一次进程调度,因此也称为短程调度。因为执行频率高,进程调度算法不宜过于复杂(太过复杂会占用太多CPU的时间)下面我们一起来看下进程调度的几种调度算法:一、轮转载 2020-07-22 11:29:24 · 1730 阅读 · 2 评论 -
处理机调度算法详解----作业调度
处理机调度算法详解----作业调度一、先来先服务(FCFS)调度算法二、短作业优先(SJF)调度算法三、高响应比优先(HRRN)调度算法四、例子 作业调度调度的对象是作业,作业在概念上和程序还是有些区别的,作业是处于外存中的,也就是在后备队列上的,作业调度的任务就是从外存的后备对列选取某些作业调入内存,并为他们创建进程、分配必要的资源,也只有作业被调入到内存中,并为之分配资源,才能完成进程的创建工作,OS才可以进行其他的调度。作业调度其执行周期较长,大约几分钟一次,因此也称为长程调度。下面我们转载 2020-07-22 10:43:30 · 2213 阅读 · 0 评论 -
OS处理机调度算法----理论篇
OS处理机调度算法----理论篇一、处理机调度中的一些概念二、处理机调度的层次三、处理机调度算法的目标四、作业调度五、进程调度六、内存调度(对换技术)在传统的操作系统中(OS 为单处理机),处理机的分配和运行都是以进程为单位的,因而处理机的管理可归结为对进程的管理。处理机管理的功能主要包含:进程控制,进程同步,进程通信,调度。下南我们一个个的来分析其功能的具本含义:进程控制进程控制是处理机管理中最基本的功能,主要包含为调入内存中的作业创建进程,终止已完成的进程,将因发生等待事件无法继续转载 2020-07-21 16:24:04 · 791 阅读 · 0 评论 -
经典的进程同步问题-----读者-写者问题详解
经典的进程同步问题-----读者-写者问题详解一、问题描述二、问题分析三、使用记录型信号量解决读者-写者问题四、使用信号量解决读者-写者问题五、测试读者-写者问题是指保证一个Writer进程必须与其他进程互斥地访问共享对象的同步问题。也因为其问题较为复杂,其进程被用来测试新的同步原语,因此,本文对读者-写者问题来进行分析。一、问题描述一个数据文件或者记录可以被多个进程共享,我们把只要求读文件的进程称为“Reader” 进程,其他进程则称为“Writer” 进程。允许多个进程同时读一个共享对象转载 2020-07-21 14:38:44 · 1645 阅读 · 1 评论 -
经典的进程同步问题-----哲学家进餐问题详解
经典的进程同步问题-----哲学家进餐问题详解一、问题描述二、问题分析三、 一个错误的例子四、 方法一:允许最多四位哲学家拿左边的筷子五、 方法二:使用AND型信号量,同时判断左右的筷子六、 方法三:奇数拿左边筷子,偶数拿右边筷子七、 测试一、问题描述有五个哲学家围在一张圆桌,分别坐在周围的五张椅子上,在圆上有五个碗和木质筷子,他们的生活方式是交替的进行思考和进餐。平时,一个哲学家进行思考,,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐完毕后,放下筷子继续思考。我们可以转载 2020-07-21 11:07:40 · 2121 阅读 · 0 评论 -
经典的进程同步问题-----生产者-消费者问题详解
经典的进程同步问题-----生产者-消费者问题详解一、问题描述二、问题分析三、信号量设置四、记录型信号量解决生产者-消费者问题五、使用AND型信号量解决生产者-消费者问题六、使用信号量集解决生产者-消费者问题七、使用管程解决生产者-消费者问题进程同步问题是一个非常重要且相当有趣的问题,因而吸引了很多学者对他进行研究。本文就选取其中较为代表性的生产者-消费者问题来进行学习,以帮助我们更好的理解进程同步的概念及实现方法。一、问题描述有一群生产者进程在生产产品,并将这些产品提供给消费者进程进行消费。转载 2020-07-20 16:41:32 · 4241 阅读 · 2 评论 -
【进程间通信】信号量机制实现实例
一、 函数介绍semget() 函数它的作用是创建一个新信号量或取得一个已有信号量,原型为:#include <sys/sem.h>int semget(key_t key, int num_sems, int sem_flags);第一个参数key:相当于一个标识符,一般由ftok函数来产生。第二个参数:num_sems指定需要的信号量数目,它的值几乎总是1第三个参数sem_flags:是一组标志,当想要当信号量不存在时创建一个新的信号量,可以和值IPC_CREAT做转载 2020-07-20 11:08:44 · 563 阅读 · 4 评论 -
进程通信方式总结与盘点
进程通信方式总结与盘点一、共享存储器系统1. 基于共享数据结构的通信方式2. 基于共享数据区的通信方式二、管道(pipi)通信系统1. 无名管道2. 命名管道(FIFO)三、消息传递系统进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。首先回顾下我们前面讲的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一转载 2020-07-16 18:01:33 · 639 阅读 · 0 评论 -
操作系统进程状态和状态转换详解
之前的有博文对进程和线程的区别进行了详细的介绍,并且引入进程的目的是为了能够使程序并发的执行,并且可以对并发执行的程序加以描述和控制。这篇博文,我们就来对进程的状态转换来进行详细的分析下。注意:本博文中进程均是在传统操作系统中的进程,即 OS是进行资源分配的基本单位,也是OS 进行调度的一个独立单位。在开始之前,我们对进程和程序来进行一个对比:程序是静态的,而进程是动态的。程序可以作为一种软件资源长期存在,而进程是有一定生命周期的。程序是永久的,进程是暂时的。进程更能真实地描述并发,而程序不能转载 2020-07-16 16:11:19 · 3115 阅读 · 0 评论 -
进程和线程的区别
进程和线程的区别一、进程二、线程三、进程和线程的区别一、进程1945年第一台计算机出现的时候,那个时候还不存在操作系统,计算机的运行是需要人工的方式通过纸带将程序和数据输入到内存中,然后计算机才可以执行程序;后面为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了脱机输入/输出方式,通过外围机来控制程序和数据的输入和运算结果的输出;为了实现对作业的连续处理,发展到单道批处理系统,他可以将一批作业以脱机方式输入到外存中,并且配上监督程序(Monitor),来控制作业的连续执行;然后转载 2020-07-15 15:58:40 · 551 阅读 · 1 评论 -
进程同步机制(软件同步,硬件同步,信号量,管程)
进程同步机制一、进程同步的几个重要概念二、软件同步机制2.1 双标志位法三、硬件同步机制3.1 关中断3.2 测试并建立(Test-and-Set,TS)指令3.3 对换指令四、信号量机制4.1 整型信号量4.2 记录型信号量4.3 AND型信号量4.4 信号量集五、管程机制进程的同步机制包含软件同步机制、硬件同步机制、信号量机制等,也就是这些机制,可以保证程序并发执行时的可再现性,在介绍之前,我们先来看下几个概念:一、进程同步的几个重要概念进程同步机制的主要任务,是对多个相关的进程在执行次序上进转载 2020-07-14 17:46:24 · 8395 阅读 · 1 评论 -
【操作系统笔记7】同步与互斥
进程/线程 合作优点: 共享资源、加速、模块化(易于扩展)原子操作(Atomic Operation): 指一次不存在任何中断或失败的执行临界区(Critical section)互 区(Critical section)临界区(Critical section)互斥(Mutual exclusion)死锁(Dead lock)...原创 2019-04-30 18:08:02 · 602 阅读 · 0 评论 -
【操作系统笔记6】CPU调度
cpu调度上下文切换a. 切换CPU的当前任务,从一个进程/线程切换到另一个b. 保存当前任务/线程 在 PCB/TCB 中的执行上下文(CPU 状态)c. 读取下一个进程/线程 的上下文CPU调度从就绪队列挑选一个进程/线程的内核函数 作为CPU 要运行的下一个进程/线程。CPU使用率: CPU 处于忙状态所占用时间的百分比CPU 吞吐量: 在单位时间内完成的进程数量周转时间...原创 2019-04-29 18:42:06 · 522 阅读 · 0 评论 -
【操作系统笔记5】线程管理
1. 多线程管理单进程的实现方法: 各个函数之间不是并发进行的,影响资源的使用效率。多进程的实现方法:各个进程之前的通讯及共享数据。维护进程的开销比较大。多线程的实现方法:实体之间可以并发的执行 且共享相同的地址空间。线程: 进程当中的一条流程,由TCB线程控制块来控制,和进程共享堆栈等资源。优点是:一个进程可以同时存在多个线程;各个线程之间可以并发地执行; 各个线程之间可以共享地址空间...原创 2019-04-24 23:02:14 · 522 阅读 · 0 评论 -
【操作系统笔记4】进程
进程与程序的联系程序是产生进程的基础,进程是程序功能的体现程序每次运行构成不同的进程通过多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以包含多个程序。进程的特点动态性: 可以动态创建、结束进程并发性: 进程可以被独立调度并占用处理机运行,并发运行独立性: 不同的进程之间工作不会互相影响制约性: 因访问共享数据/资源 或 进程间同步而产生制约。程序 = 算法 ...原创 2019-04-24 14:48:39 · 484 阅读 · 0 评论 -
【操作系统笔记3】虚拟内存---页面置换算法
功能: 当系统发生缺页中断时,需要调入新的页面。当页面内存满了时,需要选择内存当中哪个物理页面被置换。目标:尽可能减少页面的换进换出次数(即缺页中断的次数)页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键的应用程序,实现方法就是添加lock-bit。最优页面置换算法 (根据页面下一次访问等待时长来淘汰)当一个缺页中断发生时,对于保存在内存中的...原创 2019-04-23 23:53:05 · 787 阅读 · 0 评论 -
【操作系统笔记2】内存层次结构之 虚拟内存
1.虚拟内存的起因程序规模的增长速度远远大于实际存储容量的增长速度软件在运行时会发现,内存越来越不够用,尤其是电脑游戏越来越大,为了让程序正常运行,需要更大的内存和更高的性能。理想中的存储器: 更大、更快、更便宜 的 非易失性存储器实际中的存储器:Registers(寄存器<1k) —> Cache(缓存1M) —>Main Memory(主存64-512M)—&g...原创 2019-04-21 18:48:58 · 557 阅读 · 0 评论 -
【操作系统笔记1】内存层次结构之 物理存储空间--逻辑存储空间
cpu <-- Cache(L1缓存,L2缓存) <-- 主存(掉电丢失)<-- 硬盘(虚拟内存)(掉电不丢失)操作系统在内存管理方面需要重点完成的目标:抽象:逻辑地址空间保护:独立地址空间共享:访问相同内存虚拟化:获得更多的地址空间物理地址空间:硬件支持的地址空间,实际硬盘地址逻辑地址空间:程序拥有的内存范围(每个程序逻辑地址都是从0x00开始的,和...原创 2019-04-21 17:24:48 · 2994 阅读 · 0 评论