操作系统
文章平均质量分 66
operating system
LL596214569
一个有点强迫症的编程学习者。
展开
-
windows电脑改造为linux
有个大学用的旧笔记本电脑没啥用了,决定把它改成linux搭一个服务器;原创 2024-04-28 22:25:32 · 3551 阅读 · 3 评论 -
机制:地址转换
操作系统在实现对CPU的虚拟化时,采用的是受限直接执行机制(LDE)。LDE的目标是让程序大部分指令直接访问硬件,只在一些关键时机例如进程发起系统调用或者时钟中断时由操作系统介入来确保进程能够继续正确运行,这样可以实现操作系统对进程调度的高效性与可控性。在实现了高效的调度与控制之后,操作系统需要考虑的就是进程之间的安全性,也就是确保进程彼此之间的内存不会被相互影响,这就是对内存的虚拟化。当今,操作系统虚拟化内存的方式就是给每个进程分配一块独属于它的内存空间,每个进程只能访问自己的内存,无法访问超出自己内存的原创 2020-06-06 20:26:01 · 541 阅读 · 0 评论 -
抽象:地址空间
早起的操作系统其实只是一组函数(一个库),是在内存中运行的一个运行的程序,例如下图: 其中的0-64KB,属于操作系统,包括代码、数据等等,64KB之后的属于运行中的进程;后来,随着计算机的不断发展,人们开始想方设法的更有效率的使用计算机,也就是进入了多进程时代(multiprogramming),当时等等多个进程在给定时间内运行,例如当有进程在等待I/O,那么操作系统就会将CPU交给其他进程,这样可以让CPU被充分的使用。后来,人们使用的...原创 2020-06-04 22:03:46 · 1548 阅读 · 0 评论 -
调度:比例份额
操作系统有一个非常有趣的调度程序,比例份额调度(proportional-share),也被称为公平份额调度(fair-share)。比例份额基于一个简单的想法:调度程序的最终目标,就是为了给每一个进程获得一定比例的CPU使用时间,而不考虑周转时间与响应时间。比例份额调度有一个很优秀的例子,由Waldspurger和Weihl提出的彩票调度,顾名思义,就是让进程像彩票一样分配占用时间,哪个进程中奖就能获得更多的占用CPU时间,更越活越的进程,也就得到更多的抽奖机会。首先,彩票调度中彩票数代表进程占用资源原创 2020-06-03 22:04:23 · 703 阅读 · 0 评论 -
调度:多级反馈队列
多级反馈队列(Multi-level Feedback Queue, MLFQ)是有Corbato在1962年提出的,用于兼容时分共享系统。现在其经过多年的优化,已经被应用于很多现代操作系统中。多级反馈队列是为了解决两方面问题。一:优化周转时间。在之前的进程调度中曾经提及过,这需要通过有线执行短工作来实现,但是问题是很少有进程可以在一开始就能正确预测它的工作要运行多久。第二个问题是降低响应时间,这可以通过时间片轮转等方法实现,但这些策略的周转时间却很差。所以出现了多级反馈队列,多级反馈队列是使用历史经验来预原创 2020-05-30 14:46:44 · 4419 阅读 · 0 评论 -
操作系统的进程调度
一、定义调度策略的准备操作系统具有底层的机制与上层的调度策略,低层级制例如上下文切换已经在上一篇文章中有所了解,那么上层的策略调度又是什么呢?首先,我们如果要定义一种调度策略,自然首先要思考策略的运行环境以及调度指标。策划你的运行环境就是策略在执行期间会出现的情况,例如:1. 每一个进程开始执行的时间2. 每一个进程持续执行的时间3. 执行中的进程是否会出现空转等待的情况4. 在调用进程之前操作系统是否就能确认进程的相关信息。。。。。。等等,这些都是操作系统为进程制定策略之前需要原创 2020-05-29 21:54:48 · 3005 阅读 · 0 评论 -
操作系统机制之受限直接执行
受限直接执行(limited direct execution)是操作系统的关键底层机制之一,其目的就是让用户想运行的程序在CPU上运行之前,首先确保设置好硬件,以便在没有操作系统帮助的情况下限制进程可以执行的操作。直接执行操作系统会以时间片轮转的方式让多个进程共享CPU,来实现虚拟化。但是,在执行这个机制时存在一些问题。第一个是性能:如何在不增加系统开销的情况下实现进程间的切换?第二个是如何在运行其他进程的同时保留自身对CPU的控制权?控制权对于操作系统尤为重要,因为操作系统要负责资源的管理.原创 2020-05-26 22:04:24 · 1217 阅读 · 0 评论 -
操作系统抽象之进程
一、进程的概念首先思考一个问题:CPU的核心数是有限的,那么在运行远超过CPU核心数数量的程序时,操作系统是如何实现CPU核心数仿佛无限的假象的?当然是通过虚拟化CPU来实现,也就是让一个程序只运行一个时间片,然后切换到其他程序,通过高速的上下文切换来伪造一种多个CPU的假象,这也就是时分共享(time sharing)的CPU技术。这种行为潜在会造成一些性能的损失,也就是不停切换时耗费的COU性能。CPU的虚拟化想要实现,操作系统需要一些低级机制与高级技能。机制是一些低级方法或协议,用于实现所原创 2020-05-21 22:34:30 · 449 阅读 · 0 评论 -
操作系统简史
操作系统(Operating System,OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。早期的操作系统:库一开始,操作系统并不像现在的操作系统,它只是一些库,甚至可以说是一堆函数。它们的作用只是为了让程序员可以远离对类似于低级I/O处理的重复代码,而是让OS这个库来为程序员提供接口,进而减少程序员的工作。当时,在那些古老的大型机系统上原创 2020-05-20 21:41:36 · 411 阅读 · 0 评论