摘要:
引入进程的原因 进程是为了刻画并发程序的执行过程而引入的概念,进程管理就是对并发程序的运行过程的管理,也就是对CPU的管理。 进程管理的目标是最大限度地发挥CPU的处理能力,提高进程的运行效率。 并发执行 程序的并发执行是指若干程序或程序段同时运行。它们的执行在时间上是重叠的。 程序在并发执行时会导 阅读全文
摘要:
存储管理概述 存储空间的分配; 存储地址的变换; 存储空间的保护; 存储空间的扩充。 内存的分配与回收 内存分配是为进入系统准备运行的进程分配内存空间,内存回收是当进程运行结束后回收其所占用的内存空间。 存储分配方案主要包括以下要素: 存储空间的描述结构。 存储分配的策略。 把程序中的逻辑地址转换为 阅读全文
摘要:
Linux中一切皆为文件 文件 文件是具有名字的一组相关信息的有序集合,存放在外部存储器中。 文件系统 文件系统是操作系统的一个重要组成部分,它负责管理系统中的文件,为用户提供使用文件的操作接口。 文件系统由实施文件管理的软件和被管理的文件组成。文件系统软件属于系统内核代码,文件则按特定的格式存放在 阅读全文
摘要:
C#中的true和false运算符 基础用法 我们先定义一个示例用的类 public class BoolTest { public int X { get; set; } public BoolTest(int x) { X = x; } public static bool operator t 阅读全文
摘要:
输入输出 ConsoleKeyInfo c; do { c = Console.ReadKey(); // 读取按键 } while (c.Key != ConsoleKey.Escape); // 等待输入Esc键 string s = Console.ReadLine(); if (s != " 阅读全文
摘要:
自定义集合 集合接口 IList<T>列表 关键词:变长数组、有序集合、任意访问、索引 常用方法: list.Add(T); list.Remove(); list.RemoveAt(int); list.Sort(); list.Sort(IComparer<T>); list.Contains( 阅读全文
摘要:
良好的构建 重写基类object成员 ToString() 如果没有重载 ToString() ,那么这个函数返回类型的名称 System.Console.Write(new Random().ToString()); // display: System.Random 但有时候我们需要这个函数输出 阅读全文
摘要:
类 类的声明和实例化 class A{} // another file F(){ A a = new A(); // 实例化类,new <类名>(实例化参数) A aa; aa = new A(); // 先声明后实例化同样可行 } 类的成员 字段和方法 class A { private str 阅读全文
摘要:
C#语言基础 数据类型 $$ \begin{array}{|c|c|c|} \hline \text{数据类型} & \text{值类型} & \text{引用类型} \ \hline & sbyte \space byte \space short \space ushort & object \ 阅读全文
摘要:
C#实现各种排序 每种排序的要点和实现 文章中参数Func<T, T, bool> comp的意思是:排序后对于任意i < j,不可能有comp(list[j], list[i]) 冒泡排序 每次循环都将最值放到最前或者最后 倒着排序,只需访问一次list.Count(可选) 使用sorted布尔变 阅读全文
摘要:
class Rational { static inline int gcd(int a, int b) { if (!b) return abs(a); while ((a %= b) && (b %= a)) ; // do in while return a + b; } public: st 阅读全文
摘要:
在C++中实现Python的range 代码在最后,可以先看代码再看说明 在实现过程中几个应该注意的问题 整型溢出 for (auto i : irange(1e9, -2e9, -2e9)) std::cout << i << "\n"; std::cout << '\n'; // 如果不注意溢出 阅读全文
摘要:
C++ 与 C 语言相比有着更强的类型检查,包括四种 cast,左值右值之分,reference,以及最重要的——对 const 的要求。 const 是一个相当麻烦的要求,比如其强大的“传播性”——只要在一个地方使用,就可能蔓延到各个角落,出现各种编译错误。但编程实践证明 const 的使用是值得 阅读全文
摘要:
三次异或交换数字 $\wedge$ 在本文表示异或 void swap(int * restrict x, int * restrict y) { if (x == y) return; *y = *x ^ *y; *x = *x ^ *y; *y = *x ^ *y; // *y ^= *x ^= 阅读全文
摘要:
本文的叙述将基于 x86-64 为什么要学习汇编语言 汇编语言其实就是人能识别的机器语言,理解汇编语言可以是学习计算机系统的必经之路。 前置知识 指令集架构(Instruction Set Architecture, ISA) 指令集架构是描述计算机行为的一层抽象,它提供了程序员应当了解的计算机工作 阅读全文