
操作系统
doubel_山里娃
一个程序员的经历
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
文章
浅谈操作系统对内存的管理缓存一致性原创 2020-11-24 08:47:17 · 119 阅读 · 0 评论 -
JVM和OS内存数据交互
JVM启动申请多大的内存;java 启动的时候会按照配置参数分配一定的内存空间,通过OS预先分配的内存空间大小是-Xms的大小,而不会是-Xmx的大小,许多空间也只有是在真正使用的时候才分配的;当创建对象的时候,内存的分配是有JVM和OS交互完成的;数据为什么经过多次的拷贝才能到IO?当向OS申请到一定内存之后,OS就不在管理了,因为对于OS来说这些内存空间已经给JVM了,她并不知道什么时候来释放这些各个对象的内存空间,这些只有JVM自己知道,因此,JVM的对象都是有JVM来管理的;.原创 2020-11-24 08:47:10 · 494 阅读 · 0 评论 -
指令集--汇编--驱动程序-操作系统
无论AMD还是inter名牌的CPU,硬件厂商都会提供各自CPU的驱动程序,这个驱动程序是所有系统的最底层,他上层可以是操作系统,也可以是汇编语言,因此汇编语言没有操作系统也是可以运行的,或者汇编语言和操作系统没有什么关系;指令集是最底层的指令,每个不同的硬件CPU都有特定的指令集集合;汇编语言是直接操作指令集系统,第一点已经说过,他其实经过编译器然后转换成指令集,当然,这个编译器也是厂商提供的;驱动程序也是依据自身的硬件设置需求,然后根据指令集完成驱动程序的开发;因此,比如I/0的一些控制方式,如.原创 2020-11-24 08:47:23 · 1575 阅读 · 0 评论 -
栈和堆
对于栈来说,CPU或者说硬件设备有专门的栈寄存器,同时CPU为此有相应的栈操作指令集,当然也就有相应的硬件支持,指令分别是push,pop,可以控制栈寄存器的指针向上或者向下移动,例如Java的方法执行,因此汇编操作这两个指令时候,就会被编译成相应的栈指令,进行操作,所以毋容置疑,直接从硬件的操作,绝对是最快的。正是有这样的操作指令,他也就描述了栈的先进先出数据结构,至于栈的内存空间,自然也就是操作系统内核来操作这些栈指令,来进行栈内存管理。堆,其实准确的说就是满足堆内存性质的一种数据结构。这种数据结构.原创 2020-11-24 08:47:33 · 571 阅读 · 0 评论 -
文件描述符
每一次打开一个文件时候,这个进程(操作系统进程)内部都会产生一个与文件相对应的一个数据结构,这个结构里面通常存放一些操作这个文件的所有属性,例如文件读取到那个位置,所以里面肯定会有个POS值,当有很多文件打开的时候,自然就会有很多类似的数据结构来存储文件的属性信息,然后,这个所有的数据结构又会全部存放在一个数组里面,每个数组元素的值就是数据文件结构的位置,当然如果有两个操作都打开同一个文件,那么就会有连个不同的索引值,指向同一个文件结构体。而数组的每个元素的位置就叫做“文件描述符”即0,1,2,3,4··.原创 2020-11-25 08:45:20 · 335 阅读 · 0 评论 -
进程的阻塞和挂起的区别(整理)
理解一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切 的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列。理解二:阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或信号量的时候出现。挂起(suspend)不释放CPU,如果任务优先级高就永远轮不到其他任务运行,一般挂起用于程序调试中的条件中断,当出现某个条.原创 2020-11-25 08:45:27 · 2133 阅读 · 0 评论 -
截图
原创 2020-11-25 08:45:33 · 117 阅读 · 0 评论 -
多线程和汇编联系
多线程主要是在80286以及以上的处理器中的功能,最早的32位多线程是80386,看了你另外的帖子,你好象懂点汇编语言,不知道你懂不懂80386汇编,他们的指令形式差不多,区别就在于工作机制和32位.如何你想搞多线程,首先要会386下的汇编,比起8086处理器,它了许多功能,如:分页机制(虚拟存储器),多线程等…还有很多功能,至于它多线程的工作机制主要是内存查表的方法,将所有程序的地址段地址和偏移地址放入GDT表和IDT表中,再用时钟频率的中断来不断读取这张表到cs:eip寄存器中和将cs:eip内容保存如原创 2020-11-25 08:45:39 · 843 阅读 · 0 评论 -
不同文件系统差异
文件系统区别文件系统区别主要在外存分配上以不同的方式存放;不同文件系统操作系统对于文件外存的访问方式都不一样,例如有连续的内存分配,也有显示的链接分配;例如FAT文件系统,在操作系统内部有个12位的文件分配表,表里面存放整个硬盘盘块(分区)的使用情况,例如某个文件占那个盘块,这样来读取文件的时候,首先回去这个文件分配表(FAT)里面去查找这个文件具体的物理磁盘位置信息,然后再进行读取;FAT12文件系统的分配表位数是12位的,所以叫FAT12;同理,为了满足更大的内存,又出现了FAT16文件系统.原创 2020-11-25 08:45:45 · 4198 阅读 · 0 评论 -
成为Linux内核高手的四个方法
我曾经问别人如何开始内核编程的学习,他们基本上都说:①如果你不需要了解内核是如何为你工作的,你为何要尝试呢?②你应该订阅Linux内核邮件列表,然后努力去理解。③如果你不去编写针对Linux内核的代码,你就是在浪费时间。这些对我一点儿帮助都没有。所以我在这里列举了一些可行的方法,他们是有关操作系统和Linux内核是怎样在你的项目里工作的,而且还很有趣。虽然我知道得并不多,但至少比我做这些之转载 2014-01-19 03:20:29 · 816 阅读 · 0 评论 -
操作系统的中断机制
CPU进行进程之间的切换以及可以处理多个任务都是通过中断请求来实现的。在计算机系统中每个硬件组建都有各自唯一的一个中断请求装置,例如键盘键盘的中断装置,鼠标有鼠标的中断装置,那键盘来说,当按下某个按键时候,就会出发键盘的中断装置,发出中断请求,核心就是发出一个脉冲信号(从这里可以明白,计算机一切的执行都是通过电信号来实现的),键盘的按下就叫做中断源,当然中断源有许多,如硬件的坏掉,软件上除数为零,原创 2014-01-19 03:19:18 · 3686 阅读 · 0 评论