操作系统
不要停止思考-jcn
向往美好生活
展开
-
IO模型-NIO多路复用
IO操作概念信息的交互,数据的收发就是IO操作 , IO操作就是input和output ,例子: 系统read/write操作。而操作系统有这么多的数据交换 , 也就需要进行IO交互 , 用户进程与内核进行交互,然后内核再与硬件设备进行交互。牵扯到本文的知识有:用户空间、内核空间、进程、进程切换、进程阻塞、文件描述符、同步/异步、阻塞/非阻塞。(需提前进行了解后阅读更佳)在Java中主...原创 2019-10-15 08:30:09 · 324 阅读 · 0 评论 -
系统调用、页面置换算法、动态链接库与静态链接库
每日三问/操作系统篇<1>:什么是系统调用?(1)由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口,是应用程序同系统之间的接口。由于系统提供了保护机制,防止应用程序直接调用操作系统的过程,从而避免了系统的不安全性。但另一方面,应用程序又必须取得操作系统所提供的服务,否则,应用程序几乎无法作任何有价值的事情,甚至无法运行。为此,在操作系统中提供了系统调用,使应用...原创 2019-10-15 08:27:09 · 621 阅读 · 0 评论 -
进程调度
每日三问/操作系统篇<1>:分级调度有哪几种?作业调度–高级调度:根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,用于决定将外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。常用的作业调度算法有先来先服务、短作业优先、响应比高优先、优先级调度算...原创 2019-10-15 08:26:07 · 461 阅读 · 0 评论 -
物理地址、虚拟地址、虚拟内存、分段、分页以及Windows/Linux内存管理
每日三问/操作系统篇<1>:物理地址、虚拟地址、虚拟内存是什么?物理地址:内存芯片级的单元寻址,是放在寻址总线上的地址,加载到内存地址寄存器中的地址,内存单元的真正地址。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查。虚拟地址:没有经过分页机制和分段机制转换的地址,也就是段寄存器和变址寄存器内容的组合。逻辑地址:上层程序员可以操作的地址,...原创 2019-10-14 08:49:01 · 898 阅读 · 0 评论 -
缓冲区溢出的危害
每日三问/操作系统篇<1>:什么是缓冲区溢出?缓冲区:内存中预留指定大小的存储空间用来对I/O的数据做临时存储,操作系统存储器中的一块临时存储空间,这部分预留的内存空间叫缓冲区。好处:减少实际物理读写操作次数。缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数。缓冲区溢出:程序设计的漏洞,向程序中的缓冲区输入超过其设置长度的内容。每...原创 2019-10-14 08:44:01 · 2472 阅读 · 0 评论 -
如何避免、排除和解决死锁问题
每日三问/操作系统篇<1>:什么是死锁?死锁是指两个或两个以上的进程在执行过程中,由于竞争互斥资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。在一个进程的集合中,每个进程都在等待只能由该集合中其他进程才能引发的事件,那么该进程集合就是死锁的。**死锁产生原因:[1] [2]...原创 2019-10-14 08:40:49 · 883 阅读 · 0 评论 -
进程与线程的同步互斥
每日三问/操作系统篇<1>:进程间同步与互斥的区别?根据操作系统的设计,在语句执行期间,有可能发生中断或调度,而导致和当前进程无关的程序被先一步执行。为了保证程序执行最终结果的正确性,必须对并发执行的各进程进行制约,以控制它们的执行速度和对资源的竞争。直接制约关系/同步:这种制约主要源于进程间的合作。比如多个进程常常需要共同修改某些共享变量,表格,文件数据库等,协作完成一些功能...原创 2019-10-14 08:39:24 · 449 阅读 · 0 评论 -
进程与线程的联系以及通信方式
每日三问/操作系统篇<1>:操作系统中的进程与线程的区别?进程与线程的概念进程:操作系统中进行资源分配和调度的一个独立的单位,这个系统的基本单位封装了运行时候的程序,一个进程就是处于执行时期的程序,进程不单单是只是一段可执行的程序代码,还包含其他的组成资源(数据段、PCB/进程控制块)。为什么会有进程:对操作系统并发执行的程序进行控制,因为一个系统只有一个CPU。线程:CPU...原创 2019-10-14 08:38:25 · 214 阅读 · 0 评论