首页 / 更多教程 / 《操作系统底层工作》
《操作系统底层工作》
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《操作系统底层工作》,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2282字,纯文字阅读大概需要4分钟。
内容图文
一、计算机的五大核心
控制器、运算器、存储器、输入设备以及输出设备;(这个就不多解释了,不懂问度娘)
二、CPU的指令结构
从java方面来说,首先有装载子系统进行加载java文件,加载成class文件最后存入内存(在方法区存成class元信息,并通过指针的方式在堆空间中创建class对象),在内存中就会有指令段和数据段,然后再通过控制总线,数据总线以及地址总线与cpu的控制单元进行交互调度,cpu调度后指令以及数据到运算单元进行计算,然后临时存入存储单元;
三、CPU缓存结构
cpu在摩尔定律下几乎每18个月翻一番的速度发展,但是内存发展太慢,一直跟不上cpu的速度,这时候cpu为了减少与内存经常发生没必要的I/O磁盘交互,提高性能,于是在cpu上创建了三级缓存;
速度比较: cpu本身的寄存器> L1 > L2 > L3
大小比较: L3 > L2 >L1 >cpu本身的寄存器
cpu 一般是多核状态, 我的电脑是64位, 一个cpu,4个物理核, 8个逻辑核(正常来说电脑的一个核只能运行一个线程,但是由于超线程的引入,现在电脑可以一个核处理两个线程);
寄存器和L1和L2都i是cpu每个核独自的,核与核之间是访问不到的, L3是核与核之间共享的;
这里注意 cpu缓存是如何读取数据的,cpu首先先会去寄存器,如果寄存器没有,就找L1依次类推L2、L3 如何最后缓存都没有,那就到内存中去拿,拿到以后依次放到L3、L2、L1、寄存器;
并且缓存是以缓存行来存储数据的,每个缓存行可以存储64byte, 并且cpu读取数据的时候,不只是读取自己需要的数据,而且每次从内存中读取时,是把整个缓存行的数据一次性全部读出来,这样也是为了不必要的I/O,提高性能;
四、 操作系统内存管理
操作系统分用户空间和内核空间, 一般第三方软件等等都作用在用户空间,然后操作系统在内核空间,这样也是为了保护操作系统,不能随便让一个软件访问操作系统,然后改变操作系统里的内容;
根据用户空间和内核空间的划分,我们可以把线程分为内核态和用户态,而我们jvm里用的是内核态,KTL, 意思就是线程创建、调度、销毁等等都是操作系统来控制的;所以咱们new Thread() 其实就是有jvm从ring3然后切换ring0,执行完后,在切换到ring3
进程与线程 什么是进程? 现代操作系统在运行一个程序时,会为其创建一个进程;例如,启动一个Java程序,操作系 统就会创建一个Java进程。进程是OS(操作系统)资源分配的最小单位。 什么是线程? 线程是OS(操作系统)调度CPU的最小单元,也叫轻量级进程(Light Weight Process), 在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性, 并且能够访问共享的内存变量。CPU在这些线程上高速切换,让使用者感觉到这些线程在同 时执行,即并发的概念,相似的概念还有并行! (上下文切换);
内容总结
以上是互联网集市为您收集整理的《操作系统底层工作》全部内容,希望文章能够帮你解决《操作系统底层工作》所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。