07 2021 档案
摘要:单标志法 双标志先检查法:当一个进程访问临界区时,另一个进程也可能同时在访问临界区 双标志后检查法 上述算法问题产生的主要原因在于,两个进程或者多个进程并发执行的时候,并发执行的异步性。 Peterson算法 Peterson算法并没有提供阻塞、排队等机制,所以没有遵循让权等待的原则(P0进程无法进
阅读全文
摘要:进程同步 我们可以称进程同步就是进程之间的直接制约关系 进程互斥 我们可以称进程互斥就是进程之间的间接制约关系 进入区、临界区(临界段)、退出区、剩余区
阅读全文
摘要:时间片轮转算法(RR) 不像FCFS、SJF、HRRN算法中需要计算平均等待时间、平均周转时间等。因为时间片轮转算法(RR)多用于分时操作系统,需要更关心进程响应时间 优先级调度算法 多级反馈队列算法 时间片轮转、优先级、多级反馈队列算法适用于交互式系统 早期多道批处理系统更注重平均等待时间、平均周
阅读全文
摘要:先来先服务算法(FCSF) 短作业优先算法(SJF) 高响应比优先算法(HRRN)
阅读全文
摘要:进程调度的时机 操作系统内核程序临界区、普通临界区、临界资源 进程调度的方式 进程的切换
阅读全文
摘要:为什么引入线程? 引入线程之后,进程不再是CPU调度基本单位 引入线程后,进程是资源分配的基本单位,线程是调度的基本单位 内核级线程才是处理机分配的单位
阅读全文
摘要:注意:指针也是一种数据类型 将16进制的数,强转成一个地址,前面加(int *) 总结:空指针和野指针都不是我们申请的空间,因此不要访问。
阅读全文
摘要:点击查看代码 #include<iostream> #include<string> using namespace std; //函数的声明 //比较函数,实现两个整型数字进行比较,返回较大的值 //提前告诉编译器函数的存在,可以利用函数的 声明 //函数声明可以写多次,但是定义只能有一次 int
阅读全文
摘要:函数定义的时候,num1 和 num2 并没有真是数据,他只是一个形式上的参数,简称 形参 a 和 b 称为实际参数,简称 实参 当调用函数时候,实参 的值会 传递 给形参 值传递 见C++不完全学习笔记
阅读全文
摘要:外层循环打印行数,内层循环打印列数 点击查看代码 #include<iostream> #include<string> using namespace std; int main() { //2. 数据类型数组名[ 行数 ][ 列数 ] = { {数据1,数据2 },{数据3,数据4 } }; i
阅读全文
摘要:数组特点:(1)我们可以通过 下标 访问数组中的元素(2)放在一块连续的内存空间中(3)数组中每个元素都是相同数据类型 (1) n = sizeof(数组名) / sizeof(数组名[i]) ; (2) cout << arr << endl; (3) cout << "数组首地址为:" << (
阅读全文
摘要:三目运算符计算结果返回的是一个变量; 计算结果可以放在等号右侧,给等号左侧赋值;也可以放在等号左侧,返回一个变量,继续后续运算 在C++中三目运算符返回的是变量,可以继续赋值 跳转语句 break 出现在switch条件语句中,作用是终止case并跳出switch 出现在循环语句中 出现在嵌套循环中
阅读全文
摘要:引用做函数参数 总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单 点击查看代码 #include<iostream> #include<string> using namespace std; //交换函数 //1、值传递 (形参不会修饰实参) void mySwap01(in
阅读全文
摘要:(创建态->就绪态)进程初始化完毕之后,会把进程PCB放入就绪队列当中 (就绪态 -> 运行态) (运行态 -> 阻塞态) (阻塞态 -> 就绪态) 把PCB放到正确的队列当中,并且保证PCB当中数据同时被修改 --> 原语来实现
阅读全文
摘要:总结:前置递增先对变量进行++,再计算表达式,后置递增相反
阅读全文
摘要:点击查看代码 #include<iostream> #include<string> using namespace std; int main() { //整型 int a = 0; cout << "给整型变量a赋值:" << endl; cin >> a; cout << "a = " <<
阅读全文
摘要:字符串类型 点击查看代码 int main() { //1、C风格字符串 //注意事项 // char 字符串名 [ ] // 等号后面要用 双引号包含起来字符串 char str[] = "hello"; cout << str << endl; cout << sizeof(str) << en
阅读全文
摘要:sizeof关键字 实型 有效数字包括小数点以前的数字 float num1 = 3.14 f ; 默认情况下输出一个小数,小数点后最多显示6位有效数字 转义字符 点击查看代码 #include<iostream> #include<string> using namespace std; //转义
阅读全文
摘要:常量不可更改 const修饰的变量也称为常量 点击查看代码 #include<iostream> #include<string> using namespace std; //常量的定义方式 // 1、#define宏常量 #define WEEK 7 // 2、const修饰的变量,const修
阅读全文
摘要:引用 别名和原名操作同一块内存 引用注意事项 点击查看代码 #include<iostream> #include<string> using namespace std; int main() { int a = 10; //1、引用必须初始化 //int &b; //错误,必须初始化 int &
阅读全文
摘要:new操作符 new基本语法 利用new在堆区中开辟一个数组,在堆区中开辟一段连续的内存空间 点击查看代码 #include<iostream> #include<string> using namespace std; //1、new的基本语法 int* func() { //在堆区创建一个整型数
阅读全文
摘要:栈区 点击查看代码 #include<iostream> #include<string> using namespace std; //栈区数据注意事项 -- 不要返回局部变量的地址 //栈区的数据由编译器管理开辟和释放 //形参数据也会放在栈区 int* func() { int a = 10;
阅读全文
摘要:进程的定义、组成、组成方式、特征 进程的定义 进程的定义 进程的组成 PCB 和进程管理相关的数据都储存在PCB中 进程的组织 链接方式中操作系统会持有一系列指针,每一个指针会指向不同状态的进程队列 链接方式 执行指针只指向一个进程(正在被CPU处理的)中的PCB 索引方式 操作系统会为不同状态下的
阅读全文
摘要:注意: (1)代码区和全局区都是程序在运行前划分好的两个区域,程序运行后才会有栈区和堆区 (2)常量区包括 字符串常量 和 其他常量,其他常量是指,用const修饰的一些变量 点击查看代码 #include<iostream> #include<string> using namespace std
阅读全文
摘要:构造函数调用规则 1、创建一个类,C++编译器会给每个类都添加至少3个函数 (1)默认构造 (空实现) (2)析构函数(空实现) (3)拷贝构逍(值拷贝) 点击查看代码 #include<iostream> #include<string> using namespace std; //构造函数的调
阅读全文
摘要:拷贝构造函数调用时机 点击查看代码 #include<iostream> #include<string> using namespace std; //拷贝构造函数调用时机 //1、使用一个已经创建完毕的对象来初始化一个新对象 //2、值传递的方式给函数参数传值 //3、值方式返回局部对象 cla
阅读全文
摘要:值传递 点击查看代码 #include<iostream> #include<string> using namespace std; //值传递 //定义函数,实现两个数字进行交换函数 void swap(int num1, int num2) { cout << "交换前:" << endl;
阅读全文
摘要:函数的调用 总结:函数定义里小括号内称为形参,函数调用时传入的参数称为实参 点击查看代码 #include<iostream> #include<string> using namespace std; //定义一个加法函数 //函数定义的时候,num1和num2并没有真实数据,他只是一个形式上的参
阅读全文
摘要:构造函数的分类及调用 点击查看代码 #include<iostream> #include<string> using namespace std; //构造函数的分类及调用 //分类 //按照参数分类 无参构造(默认构造) 和 有参构造 //按照类型分类 普通构造 和 拷贝构造 class Per
阅读全文
摘要:对象的初始化和清理(强制要求) 点击查看代码 #include<iostream> #include<string> using namespace std; //对象的初始化和清理 class Person { public: //1、构造函数 //没有返回值 也不用写void //函数名与类名相
阅读全文
摘要:在类中我们可以让另一个类作为本类的成员 注意本节课学习在头文件和源文件中的声明(105节) 点击查看代码 #include<iostream> #include<string> using namespace std; //点和圆的关系案例 //点类 class Point { public: //
阅读全文
摘要:判断两个立方体是否相等 #include<iostream> #include<string> using namespace std; //立方体类设计 //1、创建立方体类 //2、设计属性 //3、设计行为获取立方体面积和体积 //4、分别利用全局函数和成员函数判断两个立方体是否相等 clas
阅读全文
摘要:成员属性私有化设置 点击查看代码 #include<iostream> #include<string> using namespace std; //成员属性设置为私有 //1、可以自己控制读写权限 (提供接口) //2、对于写可以检测数据的有效性 class Person { public: /
阅读全文
摘要:class和struct的区别 点击查看代码 #include<iostream> #include<string> using namespace std; //struct和class区别 //struct 默认权限是 公共public //class 默认权限是 私有private class
阅读全文
摘要:封装意义 点击查看代码 #include<iostream> #include<string> using namespace std; //访问权限 //三种 //公共权限(public) 成员类内可以访问 类外可以访问 //保护权限(protected) 成员类内可以访问 类外不可以访问(继承性
阅读全文
摘要:类和对象 、封装 点击查看代码 #include<iostream> using namespace std; const double PI = 3.14; //class 代表设计一个类,类后面紧跟类的名称 class Circle { //1_访问权限 public: //2_属性 int m
阅读全文
摘要:知识总览 什么是系统调用? 避免进程随意的使用资源 系统调用背后的过程 (trap指令)内核态,CPU的控制权在操作系统 具体分析: 陷入指令(interrupt)
阅读全文
摘要:中断机制 (1)当进程1 时间过了一个时间片时 (2)CPU切换至核心态,CPU的使用权限交给操作系统; 操作系统内核对中断信号进行处理 (3)完成操作之后,操作系统把CPU的使用权交还给用户进程;进程2在用户态下开始执行 CPU进入核心态,操作系统内核负责对中断信号进行处理 (4)完成一系列操作之
阅读全文
摘要:操作系统还可以细分为一些更小的层次 原子性:指程序运行途中不可以发生中断 操作系统体系结构:
阅读全文
摘要:双模式基础平台子系统结构风格 用户模式和内核模式是指两种不同的保护特权
阅读全文
摘要:按照执行的模式来分风格 多模式结构风格 在系统的里面 模式 主要是看他的保护机制(有 / 没有 / 多级保护模式); CPU特权是出于系统安全性考虑; 单模式结构风格 应用软件和基础平台子系统都是一种运行保护机制,不对系统实行特殊的保护
阅读全文
摘要:每一层由相应的功能或者属性来界定 优点:维护性较好,哪一层出现问题,就只在该层便可解决 分级结构中,各级可以看到其以下各级 优点和缺点同样明显的分块结构 注意: (1)分层结构:不利于提高基础平台子系统的时间和空间效率,必须严格按照规定,一层一层访问 (2)分块结构:不利于实现基础平台子系统的灵活性
阅读全文
摘要:整个过程符合软件工程对软件开发的要求 注意:(1)区别与前面讲解,从资源管理器角度来看操作系统所分的模块(进程管理模块、存储管理模块、设备管理模块、文件管理模块) (2)两类子系统归结到我们前面讲解功能分析的时候分到的两大类 (3)单向性是指用户接口子系统对基础平台子系统调用,即基础平台子系统是对用
阅读全文
摘要:本课程中主要讲解单机操作系统 三类系统在课程后面有详细说明 实时系统中可以分为:实时信息处理系统和实时控制系统 任务共行:单处理机下面的任务并发和多处理机下面的任务并行 任务管理模型 任务是一个计算过程,他不是程序,但是它可能依赖一段程序(注意程序是一个静态的概念)。 资源管理模型 资源:软件资源(
阅读全文
摘要:处理器的时间被多个用户分享 分时系统:是对多用户,多交互的系统用户采用分时的原理服务各个用户,即各个用户提交的任务,强调缩短响应时间。 对于分时系统来说,用户通过终端来提供系统命令
阅读全文
摘要:多道批处理系统单位时间吞吐量和资源利用率显著提升 带来的问题: 注意在操作系统层面,同步的意思就是指协调 互斥 保证执行结果的确定性 死锁
阅读全文
摘要:Ease of Evolution of an Operating System 1. Fixes(修改)2. New Services3. Hardware Upgrade Plus New Types of Hardware4. Efficiency(性能,硬件的提升->操作系统的升级;用操作系
阅读全文
摘要:是否受系统的控制(联机、脱机) 重要概念: 首先我们要知道线程与资源相关,而进程是系统中拥有资源的最小实体。进程里面有多个线程,进程分配了资源,线程共享其资源,同时被系统调度。
阅读全文
摘要:硬件支持(计算机组成原理): 计时器、中断机制、DMA、特权指令(进程并发章节)、存储保护机制(存储地址转换 MMU)
阅读全文
摘要:软件系统的系统需求 所谓软件系统的系统需求是指,人们从软件系统的外部对软件系统提出的诸多期望。这些期望包括两种类型: 1.软件系统能提供的服务;2.软件系统在提供这些服务时,需要满足的限制条件;3.软件系统具有适应某些变化的能力。 第一类系统需求是后两类系统需求赖以存在的基础,称之为软件系统的功能性
阅读全文
posted @ 2021-07-14 14:17
毋纵年华

浙公网安备 33010602011771号