![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
有很多汇编语言的知识
三千越甲可吞吴、
知不可乎骤得 托遗响于悲风
展开
-
生产者-消费者问题、哲学家进餐问题(伪代码)
1.生产者-消费者问题#define N 100typedef int semaphore;semaphore mutex=1;semaphore full=0;semaphore empty=N;//刚开始时无物品void producer(void){ int item; while(true){ item=produce_item(); P(empty); P(mutex); insert_item(item); V(mutex); V(full); }}void原创 2020-08-15 14:39:51 · 1092 阅读 · 0 评论 -
操作系统(复习)——平时练习题归纳总结
1.写出下列数据在计算机的十六进制表示形式:(1)无符号整数100(2)有符号整数-100(3)字符串‘DLUT’解:(1)0110 0100 = 64h(2)1001 1100 = 9Ch(3)D-68(十进制)-44(十六进制)、L-76-4C、U-85-55、T-84-54‘DLUT’ -> 444C55542.试画出下面四条语句的前驱图:S1: a=w+xS2: b=y-zS3: c=a+bS4: d=c+e并用Bernstein条件分析哪些语句可以并发执行,哪些语句原创 2020-08-12 21:00:13 · 832 阅读 · 0 评论 -
操作系统(复习)——纲要
第一章 操作系统引论第二章 进程管理(处理机管理)第三章 存储管理第四章 文件管理第五章 设备管理第六章 用户接口管理(略)原创 2020-08-12 19:23:54 · 180 阅读 · 0 评论 -
操作系统(复习)——第五章 设备管理
一、I/O通道1.什么是I/O通道:一种特殊执行I/O指令的处理机,指令类型单一,没有自己的内存,与CPU共享内存2.I/O通道的作用:建立独立的I/O操作,解脱CPU对I/O的组织和管理。CPU->发送I/O命令->通道->执行二、I/O控制方式1.查询控制方式(条件传送方式)(1)原理:CPU查询外设工作状态->外设就绪->数据输入或输出;多个外设的情况:CPU按照一定的顺序查询外设的工作状态(2)查询控制方式的缺点:CPU需循环等待导致软件开销大,CPU使用.原创 2020-08-12 19:16:53 · 1137 阅读 · 0 评论 -
操作系统(复习)——第四章 文件管理
一、文件系统概念1.文件系统:在操作系统中对文件进行管理的有关软件和数据的集合,即操作系统管理文件的方法。2.文件系统主要五个功能对文件进行按名存取为用户提供统一和友好的接口对文件和文件目录进行管理对文件存储空间进行分配和管理文件的共享与保护二、文件逻辑结构对文件的逻辑结构提出的基本要求:提高检索速度、便于修改、降低文件存储费用。1.文件逻辑结构的类型(1)有结构的记录式文件文件构成:由1个以上的记录构成记录长度:定长或变长分类(按记录的组织方式):①顺序文件:定长(也可原创 2020-08-12 17:33:51 · 673 阅读 · 0 评论 -
操作系统(复习)——第三章 存储管理
一、存储管理基本概念1.逻辑地址和物理地址地址空间是逻辑地址的集合存储空间是物理地址的集合二、连续分区存储1.单一连续分配方式最简单的一种存储管理方式,但只能用于单用户、单任务的OS存储管理方法:将内存分为系统区和用户区。采用静态分配方式,即作业一旦进入内存,就要等待它运行结束后才能释放内存。主要特点:管理简单,只需要少量的软件和硬件支持,便于用户了解和使用。但因内存中只装入一道作业运行,内存空间浪费大,各资源的利用率也不高。例一个容量为256KB的内存,操作系统占用32KB,.原创 2020-08-12 12:31:41 · 3533 阅读 · 0 评论 -
操作系统(复习)——第二章 进程管理
一、进程概念与进程控制多道程序设计->进程的引入1.进程:并发环境下程序的执行过程。2.进程和程序的区别:程序是永存的,进程是暂时的程序是静态的,进程是动态的进程=程序+数据+进程控制块(PCB)进程和程序不是一一对应的{①多个进程可以执行一个程序 ②一个进程可以执行一个或多个程序}3.进程的特征:动态性、并发性、调度性、异步性、结构性4.进程的基本状态及其转换运行:进程正在占用CPU就绪:进程具备运行条件,但尚未占用CPU阻塞:进程由于等待某一事件不能享用CPU运.原创 2020-08-11 15:43:33 · 402 阅读 · 0 评论 -
操作系统(复习)——第一章 操作系统引论
一、什么是操作系统操作系统是控制和管理计算机系统的硬件资源和软件资源,有效组织多道程序运行的系统软件,是用户和计算机的接口。OS是系统软件OS控制和管理系统资源(①硬件资源:CPU、内存、外设;②软件资源:系统软件、应用软件)二、操作系统的功能存储器(内存)管理、处理机(CPU)管理、设备管理、文件管理、用户接口管理(操作系统具体管理的内容可先了解)存储器管理:内存分配、地址映射、内存保护、内存扩充处理机管理:作业和进程调度、进程控制和进程通信设备管理:缓冲区管理,设备分配,设备驱.原创 2020-08-11 10:23:55 · 320 阅读 · 0 评论 -
多线程实现哲学家进餐问题
设置一个临界区用于五个哲学家线程的创建设置五个互斥量分别用于每一根筷子伪代码void phi(){ EnterCriticalSection(&cs); //进入临界区; printf(哲学家正在思考...); LeaveCriticalSection(&cs); //离开临界区; while(true) { if(WaitForSingleObject(...原创 2020-04-19 20:17:39 · 850 阅读 · 0 评论 -
线程同步(临界区、互斥量、事件、信号量)
线程同步:临界区、互斥、事件、信号量原创 2020-04-18 12:15:38 · 722 阅读 · 0 评论 -
线程的API函数
1、创建线程的API函数HANDLE CreateThread( 返回线程句柄 PSECURITY_ATTRIBUTES psa, 安全属性 DWORD cbStack, PTHREAD_START_ROUTINE pStartAddr, 函数地址 PVOID pvParam, 参数传递 DWORD fdwCreate, 控制创建进程标...原创 2020-04-14 17:03:08 · 416 阅读 · 0 评论 -
处理机调度—调度算法(FCFS、SJF、SRT、RR)
1、FCFS算法原理:first come first served,先到达进程先执行编程思想:按照到达时间排序,顺序执行2、SJF算法原理:shortest job first,从就绪的队列中选择服务时间最短的进程执行编程思想:按照到达时间、服务时间排序,根据服务时间从小到大的顺序判断进程是否就绪(设置就绪标识、进程完成标识)3、SRT算法原理:shortest remaining...原创 2020-04-02 10:08:06 · 3526 阅读 · 1 评论 -
桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进
桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。typedef int semaphore;//设置四个信号量semaphore empty=1;//盘子是否为空semaphore mutex=1;//一次只能进行一个操作:取或者放...原创 2020-04-01 18:42:35 · 23028 阅读 · 3 评论 -
操作系统进程同步—PV机制
四个进程ABCD共享一个文件,要求可以多进程共享文件,但AC、BD不能同时共享文件。/*四个进程A、B、C、D、都要读一个共享文件F,系统允许多个进程同时读文件F,但限制是:进程A和进程C不能同时读文件F进程B和进程D不能同时读文件F为了使这四个进程并发执行时能按照系统要求执行文件,用PV操作编写相关程序*/#include<iostream>#include<wi...原创 2020-04-01 11:30:54 · 2896 阅读 · 0 评论 -
Peterson算法分析
#include<iostream>#include<thread>#include<windows.h>using namespace std;int turn;bool Flag[2] = { false,false };void Process_0(){ Flag[0] = true; turn = 1;//P0未进入临界区 w...原创 2020-03-27 11:38:26 · 369 阅读 · 0 评论 -
RR
编写RR算法浪费了最多的时间,在编写算法前一定要搞清楚原理。RR算法就是在每一个时刻将要执行之前,判断该时刻加上时间片后是否有新进程进入,如果有,压入队列。这个时间点一定要搞明白才行,才能理解。如果有流程图的话,更容易写。#include<iostream>#include<queue>#include<vector>#include<wind...原创 2020-03-26 11:54:10 · 497 阅读 · 0 评论 -
SRT
#include<windows.h>#include<iostream>#include<vector>#include<time.h>using namespace std;int Flag=1;int PID_Set = 0;int System_Time = 0;int Max_Time=7;struct PCB{...原创 2020-03-25 12:54:30 · 470 阅读 · 0 评论 -
SJF
#include<iostream>using namespace std;struct PCB{ char jobname; int Tin; int Tr; int Ts; int Tc; int T; float W; bool finish;}PCB[10];void RankTin(int job){ for (int i = 0;i &...原创 2020-03-23 21:14:02 · 406 阅读 · 1 评论 -
FCFS
#include<iostream>using namespace std;struct PCB{ char jobname;//任务名称 int Tin;//到达时间 int Tr;//服务时间 int Ts;//开始时间 int Tc;//结束时间 int T;//周转时间 float W;//带权周转时间}PCB[10];void Rank(int...原创 2020-03-23 21:05:12 · 704 阅读 · 0 评论 -
进程编程API
WinExec、ShellExecute、CreateProcess、EnumProcessess、Process32First、原创 2020-03-19 14:25:23 · 233 阅读 · 0 评论 -
利用BIOS中断编写最简单操作系统,hello world操作系统引导程序
汇编语言、BIOS中断原创 2020-03-11 20:30:53 · 656 阅读 · 1 评论 -
自己动手写最简单的操作系统
操作系统、汇编语言、虚拟机原创 2020-03-10 21:24:15 · 598 阅读 · 0 评论 -
8086寻址方式(数据存取方式)
8086寻址方式总结原创 2020-03-06 14:26:57 · 483 阅读 · 0 评论 -
使用机器语言计算4+5
汇编语言、机器语言、DOSBOX原创 2020-02-26 11:35:05 · 870 阅读 · 0 评论