- 博客(31)
- 收藏
- 关注
原创 要从零创建进程?有更快的办法!--进程复制有始有终
如果每个进程都从零开始创建,必然有大量的初始化工作(如初始化PCB、构建虚拟内存空间)是重复的。于是有了新的原语出现–fork()/clone():使用已有的进程复制新进程,使得新进程完成了与已有进程相同的初始化操作,进程的复制可以越过大量的初始化工作。其中clone主要用于线程的创建。线程的管理、创建、复制将在后文做详细说明,本文主要对。1.申请PCB–复制父进程PCB–用复制的数据初始化新进程PCB。复制创建的过程进行分析和总结。
2024-02-27 12:46:24
389
原创 内核栈是什么
当进程或线程在内核模式下执行时,例如在中断处理、系统调用或内核函数调用期间,需要使用内核栈来保存临时变量和上下文信息,以确保函数调用的正确性和一致性。内核栈(Kernel Stack)是操作系统内核为每个运行中的进程或线程分配的一块内存区域,用于保存内核级别的函数调用过程中的局部变量、参数以及返回地址等信息。需要注意的是,与用户栈一样,内核栈也是有限的,具有一定的大小限制。由于内核栈是为每个进程或线程分配的,因此在进程切换或线程切换时,内核栈也需要相应地进行切换,以确保每个进程或线程的内核栈独立且隔离。
2024-02-22 18:16:10
861
原创 【时间安排】
每天早上燕麦+牛奶,8:00之前早餐吃好,晚上8:00或9:00之后到10:00,练练瑜伽和与同学玩的顺序可以打乱但必要。因为以我现在的认识,回到高中肯定苦读,而当年每天混着日子,想借此好好规划自己的路。明天后天两天写论文+改简历 周一(早上去城市书房,可能吵一点戴个耳塞)周二9:00~12:00,中午回家吃饭午睡一会,3:00左右再过来八点回,一天就有差不多七个小时时间;8点可以去找同学玩。最近刚刚回到家,到家就是会有各种事情干扰,心里变乱人变懒的,而要做的事情也要继续,写论文,改简历,学习新技能。
2024-01-28 15:01:16
493
原创 【进程总结】进程的抽象与进程控制块总结,进程的不同状态,进程的控制,进程原语的操作
计算机通常需要并发的执行多个程序,为了对这些并发执行的程序进行控制和隔离,把一个个运行中的程序叫做进程。不仅能用进程描述和管理程序执行的过程,也成为了资源共享的基本单位。然而进程开销太大,又引入了线程的概念。
2024-01-24 16:53:35
551
原创 【操作系统】【实例说明】重新认识程序从编译到执行的过程:从C语言代码到一个可执行文件计算机做了什么
这是学习进程所需要必要的知识,要想知道进程里面包括了什么,有必要对进程的前身有深入的具体的了解。
2024-01-24 16:05:40
436
原创 【操作系统基础】【CPU访存原理】:寄存 缓存 内存 外存、内存空间分区、虚拟地址转换、虚拟地址的映射
存储器怎么存储数据、内存空间分区、虚拟地址转换。
2024-01-23 12:51:07
1557
原创 【操作系统基础】【你没看过的处理器精华信息,绝对值得一看】处理器的中断和内部异常、处理器工作模式、寄存器完整介绍以及每个寄存器具体功能,指令集
鲲鹏处理器的中断和内部异常处理、处理器工作模式、寄存器完整介绍以及具体功能
2024-01-19 16:57:35
471
原创 JSP动态网页制作
Tag文件:为了给JSP页面返回一个对象结构保存标记 调用<%@ taglib tagdir profix=>指令(page language import pageEncoding include attribute–页面传递数据给tag文件 <–>variable )识别单词 显示日历 用户注册表单 音乐选择表单UML系统设计思想选择应用。
2024-01-12 15:10:20
673
原创 C++标准库体系结构&参数化模型
进程是程序的一次执行,是操作系统分配资源的单位,多个进程是可以并发执行的,并发执行实际上每个时刻执行的还是一个进程,只不过进程间切换的速度比较快,给人的感觉是并发执行。&:带&函数形参,使用并接收返回值,而 & 叫做引用符,它是 C++ 的内容(目前多数 C 语言编译器也能使用),它可以引用主函数中 x 的地址,而不在调用的函数栈帧中开辟空间,这样就可以对主函数中的 x 进行修改。池化技术:提前保存大量资源,来备用资源或重复使用资源,内存池,(Socket/)线程池,连接池,对象池,
2024-01-12 15:06:03
984
1
原创 套接字(Socket)和网络编程的区别与联系
所以,套接字是网络编程中的一部分,它是用于实现网络通信的编程接口。在网络编程中,我们使用套接字来创建、连接、发送和接收数据。套接字是网络编程的基础,它提供了一种编程上的抽象,使得开发者能够使用统一的接口进行网络通信。套接字(Socket)和网络编程是紧密相关的概念,它们在计算机网络中扮演着不同的角色。
2023-08-24 18:45:01
207
1
原创 网络编程之socket函数理解
最常见的用例:创建一个sockfd对象,里面包括使用的寻址协议和数据传输格式,最后一个参数是特定的寻址协议和数据传输格式,为0代表调用者不指定协议,由服务商自动选择。AF_INET:代表地址使用的协议是IPV4(AF_INET6是IPV6)SOCK_STREAM:代表使用TCP协议。
2023-08-01 22:42:03
74
1
原创 右值引用是什么
移动语义:通过右值引用,可以直接获取到将要销毁的临时对象的资源,并能将这些资源转移到其他对象上,而不进行额外的内存拷贝和分配。完美转发:通过右值引用,可以实现参数的完美转发,即保持原始参数类型的同时,将参数传递到另外一个函数上。右值引用是一种引用类型,它和左值引用一起构成了C++中的引用类型。右值引用通过&&来声明,表示绑定到右值的引用。需要注意的是,右值引用只能绑定到右值上,不能绑定到左值上。总结来说,右值引用是C++中的一种引用类型,通过&&来声明,用于实现移动语义和完美转发,提高代码的效率和性能。
2023-07-25 11:03:20
301
原创 C++线程池
当有新的任务提交给线程池时,线程池会从工作队列中选择一个空闲的线程来执行任务,并在任务完成后将线程返回到线程池中,以便重复使用。这样可避免了创建和销毁线程的开销,提高了系统的性能。它是一组预先创建的线程,可以用来执行多个任务,而不需要为每个任务创建新的线程。线程池在多线程编程中广泛应用,特别是在涉及大量短时间任务或线程创建销毁频繁的场景下。线程池的大小是可配置的,可以根据系统的需求和资源限制来设置。过大的线程池可能会消耗过多的系统资源,而过小的线程池则可能无法满足系统的并发需求。
2023-07-25 10:02:23
108
原创 两数之和DAY01
在这里插入图片描述](https://img-blog.csdnimg.cn/a6bb9615446b4a16953588255c199a16.png)这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N) 降低到 O(1)。vector使用不熟。
2023-07-24 20:53:37
128
原创 C++关键字operator是干嘛的?怎么用?
用operator关键字去专门重载运算符的。1.类内重载运算符:(类内成员函数)2.类外重载运算符:(全局函数)
2022-10-15 12:53:34
514
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人