自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 操作系统---计算机系统概述

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的并行:指两个或多个事件在同一时刻同时发生操作系统的并发性是指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,微观上看是交替运行的。操作系统就是伴随着“多道程序技术”而出的。因此,操作系统和程序并发是一起诞生的。注意:单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行多核CPU同一时刻可以同时执行多个程序,多个程序可以并行执行。对于多处理器系统来说,并行中有并发,并发中有并行。

2025-04-07 11:48:02 1325

原创 Linux操作系统之基础IO

openpathname: 要打开或创建的目标文件flags: 打开文件时,可以传入多个参数选项,用下面的一个或多个常量进⾏“或”运算,构成flags参数:O_RDONLY: 只读打开O_WRONLY: 只写打开O_RDWR: 读,写打开上面这三个常量,必须指定一个且只能指定一个O_CREAT: 若文件不存在,则创建它。需要使⽤mode选项,来指明新⽂件的访问权限O_APPEND: 追加写返回值:成功:新打开的文件描述符失败:-1open。

2025-04-02 18:36:00 4221

原创 Linux操作系统之进程控制

本文是进程控制详解,涉及进程创建、进程终止、进程等待与进程程序替换。从创建进程讲起,到进程终止时,理解什么叫退出码,明白exit函数与_exit函数的区别。当进程终止退出时,进程变为了僵尸进程,虽然父进程退出时会对变为僵尸进程的子进程进行资源回收与清理,但如果不会其进行主动回收,这期间内会一直占用系统资源,本文的进程等待话题就是解决这种情况的,同时在当今各种程序语言蓬勃发展之际,一个大型项目总会涉及各种编程语言,那么进程程序替换就是描述这类情况的方法。

2025-03-24 22:49:30 1242

原创 Linux操作系统之环境变量与进程地址空间

我们之前编写的程序都是单进程的,也就是这个进程内的数据与内存资源都是完全归它自己一个人所占用。导致让我们之前认为该进程所打印出来的地址也就是物理上的实际内存地址,这一观点实则是错误的。其实进程是不能直接使用物理上的内存地址的,它只能使用虚拟内存地址,然后让OS间接把虚拟地址转换为物理地址。 也就是说OS欺骗了进程,让进程始终以为自己用的就是实际物理内存地址,让进程以为自己独占整个内存!

2025-03-17 12:46:27 1674

原创 Linux操作系统之进程状态、优先级和切换与调度

一个CPU拥有一个runqueue(就绪队列),runqueue内部含有一个存放两个元素的优先级数组(prio_array_t),这两个元素是一个结构体类型,分别表示活动队列与过期队列,这两个队列的结构是一致的。active指针永远指向活动队列expired指针永远指向过期队列nr_active表示当前活动队列中的进程数,在活动队列中,这些进程就是活跃的,是时间片还没有用完,将要准备执行的。过期队列中就是过期的,是当前一个调度内时间片用完了,但本身任务还没有完全执行完的。

2025-03-10 13:03:34 1238

原创 Linux操作系统启动——前置知识预备

揭开操作系统神秘的面纱——本文从软硬件架构出发,引出了操作系统的概念,对操作系统下了个定义:是一款纯正的对软硬件设备进行管理的软件,在整个计算机中是起管理作用的,以小故事的方式来理解“管理”二字,此外还引出了进程的概念,本文只对进程作了一个简述。

2025-03-04 20:39:56 1630

原创 二叉搜索树

二叉搜索树又称二叉排序树(中序遍历是升序),它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有结点的值都小于等于根结点的值若它的右子树不为空,则右子树上所有结点的值都大于等于根结点的值它的左右子树也分别为二叉搜索树二叉搜索树中可以支持插入相等的值,也可以不支持插入相等的值,具体看使用场景定义,STL容器中的map/set/multimap/multiset系列容器底层就是二叉搜索树的变形,其中map/set不支持插入相等值,multimap/multiset支持插入相等值。

2025-01-02 21:35:09 1331

原创 C++之模板进阶

模板是泛型编程的基础,它的出现才让C++这个面向对象的编程真正出现在大众视野里面,并被大众所广泛接受。

2024-12-28 18:31:08 1528 1

原创 C++之多态

多态,即多种形态。在面向对象的程序设计中,我们往往希望用不同的对象去调用同一函数,能产生不同的运行结果,从而实现程序的多样化。就好比日常生活中,不同的人去做同一件事,却能产生不同的效果。我们在计算机的世界里把这种特性叫做多态,这正是面向对象的三大特性之一。

2024-11-20 20:39:24 1979

原创 C++之继承(万字详解)

在面向对象中,继承(inheritance)机制是使代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上进行扩展,增加成员函数和成员变量,这样产生新的类,称派生类(也叫子类),而原有类则称基类(也叫父类)。继承体现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触了函数,可将函数看成是简单代码逻辑上的复用,而继承就是复杂类层次上(包括了函数和变量)的复用。

2024-11-11 20:44:35 1095

原创 string类的深度剖析下与其模拟实现

string类的深度剖析下与其模拟实现

2024-11-05 13:12:26 1034

原创 string类的深度剖析上

对于学习string类我的看法:string是STL容器的一部分,后面各个容器的学习也大多都有string类似的影子,学好string类是后续STL的基础

2024-10-29 21:38:42 1946

原创 C++之内存管理与模板初级

C++引入模板可谓是C++历史上跨时代的意义,模板是泛型编程的基础,当‌本贾尼博士(Bjarne Stroustrup)提出模板概念后,C++从此一发不可收拾,自此面向对象的编程语言也逐渐被广大程序员们所接受。模板正如它的名字一样,它是一个模具,当我们对模具浇筑不同原料时,会得到不同材料但形状大小一致的实质性物体。

2024-10-25 20:59:17 1102

原创 C++之类和对象3

【代码】C++之类和对象3。

2024-10-21 20:53:30 1140

原创 基于类和对象2实现Date日期类(主要是日期之间的运算)

class Date// 注意为了与库中 cout 与 cin 用法一致,需在内中声明友元// 运算符重载public://日期合法性检查// 获取某年某月的天数---频繁使用置为内联//用一个静态数组存储每月具体的天数,其中闰年单独判断= 0 || year % 400 == 0))//2月并且为闰年的判断,注意闰年条件别写错return 29;else//打印// 全缺省的构造函数// 拷贝构造函数// d2(d1)

2024-10-17 12:40:08 454

原创 C++之类和对象2

【代码】C++之类和对象2。

2024-10-15 11:43:46 1749

原创 C++之类和对象1

在C语言中我们就已经学过用结构体去定义变量,这是属于自定义类型,比如说定义一个学生结构体,其中结构体的成员变量可能有姓名、年龄、学号、性别等,这样定义是因为学生都具备这样的属性,可以说学生这一类群体的特征是相同的,用学生结构体可以定义出多个属性相同但具体细节上不同的学生变量,可以实现编程的广泛性。于是C++在C语言的基础上引入了类的概念,类可以说是结构体的plus版本,相比于结构体有着更强大的功能,比如说,类中可以定义成员函数(类中的函数一般叫方法)。

2024-10-06 16:54:04 706

原创 C++入门基础

namesapce本质是定义出了一个域,不同的域中可以定义同名变量,且这个域与全局域是互相独立的。C++中的域有全局域,局部域,namesapce定义的域和类域,域影响的是在编译时语法查找的变量/函数/定义和声明的逻辑,有了域的出现,就能解决定义的名字重复问题。命名空间只能定义在全局,当然它可以嵌套定义。另外命名空间内的成员可以有变量/函数/自定义类型等。项⽬⼯程中多⽂件中定义的同名namespace会认为是⼀个namespace,不会冲突。

2024-10-05 19:22:41 1961 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除