【操作系统】第二章 进程与线程
第二章 知识体系 2.1 进程与线程2.1.1 进程的概念和特征 2.1.2 进程的状态与转换 2.1.3 进程的组成进程的数据结构 = PCB(进程控制块) + 程序段 + 数据段 2.1.4 进程控制 2.1.5 进程通信 2.1.6 进程的上下文切换 2.1.7 线程和多线程模型 2.2 处理机调度2.2.1 调度的概念 2.2.2 调度的层次分类 2.2.3 调度的实现 2.2.4 典型的调度算法 2.2.5 进程切换见本文 2.1.6 2.3 互斥与同步2.3.1 同步与互斥的基本概念 2.3.2 实现临界区互斥的方法 2.3.3 互斥锁 2.3.4 信号量 2.3.5 管程 2.3.6 经典同步问题待续。。。 2.4 死锁2.4.1 死锁的概念 2.4.2 死锁预防 2.4.3 死锁避免 2.4.4 死锁的检测与解除 2.4.5 例题 1. 安全性算法解答 2.银行家算法解答
【计算机网络】第一章 计算机网络结构
第一章 体系结构 1.1 计算机网络概述1.1.1 计算机网络的概念 1.1.2 计算机网络的组成 1.1.3 计算机网络的功能 1.1.4 计算机网络的分类 *1.1.5 计算机网络的标准化工作计算机网络的标准化工作 计算机网络的标准化需要经历以下4个步骤∶①互联网草案;②建议标准(RFC文档);③草案标准;④互联网标准。 1.1.6 计算机网络的性能指标 1.2 计算机网络体系结构与参考模型1.2.1 计算机网络分层结构 1.2.2 计算机网络协议、接口、服务的概念 1.2.3 ISO和OSI参考模型和TCP/IP模型
【计算机组成原理】第一章 计算机系统概述
第一章 知识体系 1.1 计算机发展历程1.1.1 计算机硬件的发展计算机发展趋势: 1.1.2 计算机软件的发展 1.2 计算机系统层次结构1.2.1 计算机系统的组成 1.2.2 计算机硬件 1.2.3 计算机软件 1.2.4 计算机的层次结构 1.2.5 计算机系统的工作原理 1.3 计算机的性能指标
【数据结构】第一章 绪论
知识体系 1.1 数据结构的基本概念1.1.1 基本概念和术语 1.1.2 数据结构三要素 1.2 算法和算法评价1.2.1 算法的基本概念 1.2.2 算法效率的度量时间复杂度和空间复杂度:O(1) < O(logN) < O(n) < O(nlogN) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n) 1.3 常考点
【操作系统】 第一章 操作系统概述
第一章 知识体系 1.1 操作系统的基本概念1.1.1 操作系统的概念 操作系统负责管理协调硬件、软件等计算机资源的工作; 操作系统为上层用户、应用程序提供简单易用的服务; 操作系统是一种系统软件;1.1.2 操作系统的特征 并发和共享是最基本的两个性质, 两者互为存在条件; 没有并发和共享,虚拟和异步就无从谈起; 1.1.3 操作系统的目标和功能 1.2 操作系统的发展历程 1.3 操作系统的运行环境1.3.1 处理器的运行模式 1.3.2 中断和异常的概念 1.3.3 系统调用 1.4 操作系统结构 1.5 操作系统引导 1.6 虚拟机
【环境配置】vs2022引入libevent库
libevent库的引入(注意:平台debug x86)(0)这里直接提供生成好的静态库 链接:https://pan.baidu.com/s/1Bvc501g2NS1aWkqzfbfR4A提取码:8888 (1)下载解压后,有个libevent文件夹,可以随意放,但要记得路径,最好和项目同级目录,便于寻找。(2)确保该项目中有一个.cpp文件,右键项目属性->VC++目录->包含目录->libevent\include路径(3)属性->VC++目录->包含目录->libevent\include路径(4)属性->VC++目录->包含目录->libevent\WIN32-Code\nmake(5)属性->VC++目录->库目录->libevent\lib(6)属性->链接器->输入->附加依赖项-> libevent.liblibevent_core.liblibevent_extras.lib(注意:确定后一定有要用;隔开) 测试程序:12345678910111213141516 ...
【环境配置】vs2022搭建jsoncpp
json库的引入(注意:vs2022 debug x86)(0)下载jsoncpp,这里直接提供已经生成好的静态库 链接:https://pan.baidu.com/s/1Quuf01JtC0MtCT4y1ionvw提取码:8888 (1)下载解压后,有个json文件夹,可以随意放,但要记得路径,最好和项目同级目录,便于寻找。(2)确保该项目中有一个.cpp文件,右键项目属性->C/C++->常规->附加包含目录->添加json/include路径(3)属性->链接器->常规->附加库目录->添加json/lib路径(4)属性->链接器->输入->附加依赖项->添加json/lib下的.lib文件名(5)属性->C/C++->代码生成->运行库->多线程调试(/MTD)(6)测试是否成功引入:看是否能够编译连接通过。 12345#include "json.h" int main(){ Json::Value a; return 0;} ( ...
【review-list 1】反转链表
描述 思路解法一:双指针迭代(推荐) step1: 定义pre指向pHead前一个结点、next指向pHead下一个结点step2: 通过头指针的移动来不断使用pre、pHead、next指针进行方向逆转,直到pHead == nullptrstep3: 此时退出循环,pre指向最后一个结点,也就是反转后的头结点 C++实现代码123456789101112131415class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* pre = nullptr; ListNode* next = pHead->next; while(pHead != nullptr) { next = pHead->next; pHead->next = pre; pre = pHead; pHead = next; ...
【C++】模板元编程栗子
一、题目描述 使用c++提供的模板编程,将二进制数转换成十进制 二、代码123456789101112131415161718template<size_t N>class BinToDec {public: static const int value = BinToDec<N / 10>::value * 2 + N % 10;};template<>class BinToDec<0> {public: static const int value = 0;};int main(){ size_t res = BinToDec<110>::value; cout << res; return 0;} 三、代码分析结果:
【数据结构】并查集
一、引言 并查集的相关介绍 二、C++实现1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include<iostream>using namespace std;class Ufset{private: int* parent; size_t size; //parent对象的个数private: void Showchild(int child)const { cout << child << " "; for (int i = 0; i < size; ++i) { if (child == parent[i]) { Showchild(i); } } }public: Ufset ...