Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

系统调用有了操作系统后,程序员写的程序已经不能称之为一个完整的程序了,因为操作系统帮我们做了很多事,我们在写一个只有一个输出语句的main程序时,虽然代码只有一行,但是实际运行却不止一行。因为我们输出语句调用了库函数,而这个库函数是编程语言统一规定的,只要在相同的编程环境中,程序员都可以使用,避免程序员重复造轮子,极大方便了开发。 库函数实际上就是操作系统实现一个功能对程序员开放的接口,...

线程执行流是什么宏观上:其实就是具有上下文环境的一段代码,可以被调度器调度上处理器执行。执行流是独立的,它拥有自己的栈、寄存器映像、内存等资源,这就是一个执行流的上下文环境。 微观上:是CPU的执行轨迹。 注意:当有线程后,执行流就是调度器的调度单位,就是指线程。 PCB到底是什么PCB是操作系统为每个进程维护的一个数据结构,相当于进程的“身份证”,记录了进程的全部状态和控制信息,操作系统通...

中断中断机制的本质:来一个中断信号,调用相应的中断处理程序 中断分类中断分为内部中断和外部中断,内部中断分为异常和软中断,外部中断分为可屏蔽中断和不可屏蔽中断。每个中断都有对应的中断向量号,根据中断向量号调用相应的中断处理函数,理想情况下为每一个可屏蔽的外部中断在CPU上都接一个引脚,但是理论上外设是无上限的,必然扩大了CPU的大小,所以只在CPU上接两个引脚用于外部中断(可屏蔽、不可屏蔽)...

背景在 visual studio中配置mysql环境参考文章如下 https://blog.csdn.net/weixin_58210154/article/details/141790084 乐观锁和悲观锁是常见的并发控制机制,解决多进程或者多线程环境中数据数据访问冲突的问题 数据库表创建创建一个银行账户表 account,包含账户ID、姓名、余额、版本号 1234567CREATE T...

背景内存泄漏一般指的是堆内存泄漏。在写代码的时候,通过C++运算符或者库函数(malloc等)分配内存,使用完后总是忘记释放内存,导致操作系统失去对这块内存的控制,也就是内存泄漏。 如果不进行内存泄漏的处理,当系统中运行的程序越来越多,内存泄漏也就会越来越多,即使实际上物理内存足够大,但是一旦内存泄漏越来越多,可用内存就越来越少,严重可能会导致系统崩溃。 如何定位可能发生内存泄漏的进程模拟一...

背景一个进程中的多个线程是共享进程空间的数据的,当线程并发执行时,会出现线程安全问题,也就是多个线程对共享数据进行修改时导致数据不一致的问题。为了解决线程并发问题需要对共享资源进行互斥访问,通过互斥锁实现。如果获取锁的顺序不当,很可能会造成死锁。那发生死锁的时候怎么去排查呢? 通过创造产生死锁的4个必要条件模拟死锁的发生系统产生死锁的四个必要条件 · 互斥 · 请求保持 · 不可剥夺 · 环...

背景最近在深入学习操作系统,以32位的Linux操作系统为例,使用Bochs这个x86模拟器时,创建了32MB的物理内存,因为地址总线是32位,所以能访问4GB的内存空间。为什么不创建一个32GB的物理内存呢?这样在做地址映射的时候就能让虚拟地址和物理地址一一对应了。为什么虚拟地址空间要比物理地址空间大呢?这样不会导致多个相同的虚拟地址映射到同一个物理地址上吗?通过查阅多种资料,终于揭开了虚...

这是显示在首页的概述,正文内容均会被隐藏。