![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统底层
Java蜗牛
这个作者很懒,什么都没留下…
展开
-
系统底层的锁到底是个是东东
在多线程编程中,为了保证数据操作的一致性,操作系统引入了锁机制,用于保证临界区代码的安全。通过锁机制,能够保证在多核多线程环境中,在某一个时间点上,只能有一个线程进入临界区代码,从而保证临界区中操作数据的一致性。所谓的锁,说白了就是内存中的一个整型数,拥有两种状态:空闲状态和上锁状态。加锁时,判断锁是否空闲,如果空闲,修改为上锁状态,返回成功;如果已经上锁,则返回失败。解锁时,则把锁状态修原创 2014-05-21 17:58:20 · 754 阅读 · 0 评论 -
MMU和cache学习
1. MMUMMU:memory management unit,称为内存管理单元,或者是存储器管理单元,MMU是硬件设备,它被保存在主存(main memory)的两级也表控制,并且是由协处理器CP15的寄存器1的M位来决定是enabled还是disabled。MMU的主要作用是负责从CPU内核发出的虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程转载 2014-10-20 12:58:20 · 562 阅读 · 1 评论 -
程序编译后运行时的内存分配
一、编译时与运行时的内存情况1.编译时不分配内存编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。2.运行时必分配内存运行时程序是必须调到“内存”的。因为CPU(其中有多个寄存器)只与内存打交道的。程序在进入实际内存之前要首先分配物理内存。3.编译过程只能简单说一下,因为转载 2014-10-20 12:33:51 · 693 阅读 · 0 评论 -
malloc对应的汇编语句
#include int main(){0132B350 push ebp 0132B351 mov ebp,esp 0132B353 sub esp,0CCh 0132B359 push ebx 0132B35A push esi 0132B35B push edi原创 2014-10-30 16:54:09 · 2501 阅读 · 0 评论 -
linux中tty设备的一点理解
虽然一直做嵌入式Linux,宿主机和开发板通信天天都在用tty设备通信,但是其实自己对TTY设备及终端的概念认识几乎是0。对于Linux内核的终端、tty、控制台等概念的认识很模糊。由于在学习的时候碰到了重定向console的问题,所以借机学习下tty的知识。以下是我对tty的认识总结,信息来源于网络和内核文档。参考资料见文章末尾。tty一词源于Teletypes,或Teletypewri转载 2014-07-22 21:57:24 · 1162 阅读 · 0 评论 -
java字节码含义
栈和局部变量操作 将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将int类型常量1压入栈 iconst_2 将int类型常量2压入栈 iconst_3转载 2014-05-25 19:19:26 · 671 阅读 · 0 评论 -
程序是怎么在计算机中运行的--运行时程序的内存结构
许多人一直很纳闷原创 2014-05-25 13:38:59 · 1022 阅读 · 0 评论 -
linux系统调度源码分析
废话不多说,直接上源码:原创 2014-05-23 08:49:42 · 675 阅读 · 0 评论 -
用户态,内核态的实现
什么是用户态,什么是内核态,简单的来说就是程序原创 2014-07-16 00:36:23 · 1040 阅读 · 0 评论 -
多进程是怎么回事
在从接触到电脑,就一直有个疑惑为什么电脑可以同时运行多个程序,照理说只有一个CUP原创 2014-05-22 10:30:34 · 1153 阅读 · 0 评论 -
虚拟内存的分段与分页实现
关于内存管理(虚拟内存的分段与分页实现),Intel Pentium完成哪些功能,Windows/Unix OS完成哪些功能?修改《现代操作系统》在介绍内存管理的分段与分页结合时,介绍了分段和分页结合Intel Pentium的例子,那么处理器和操作系统在内存管理方面的配合和分工是怎样的?修改举报添加评论 分享 • 邀请回答按票数排序按时间排序转载 2014-10-20 08:55:15 · 1350 阅读 · 0 评论