Day-16 OS初体验

OS初体验

tags: IT铁人

甚麽是OS

OS是Operating System的缩写,比如说现在常听到的Windows系统、macOS、以及以Linux核心衍生出来的众多OS。

前面的文章提到的基本上偏向电脑的零件架构,而OS就是运行在这些硬体上面,并且让APP运行在自身之上,OS必须确保APP能够顺畅且安全的运行,电脑的架构可以用下面这张图诠释:

大概就是一层一层的向上叠,其中OS大致上含括了kernel、在外面一层还有一部分最外面的program,通常最外层还会加上User。

OS作用

前面提到OS是运行在硬体之上,可以达成以下事情:

  • 提供一个让User易於操作电脑之沟通界面。
  • 提供一个让User programs易於执行之环境(提供一系列service)。
  • 作为一个resource的管理者,协调分类这些resource(CPU, Memory, I/O)。
  • 作为一个监督者,监督所有process执行,避免process破坏system造成为害。

而会需要以上作用就是因为电脑不会只跑一个程序,一定是许多之程序同时运作,这就称为Multiprogramming System。

Multiprogramming System

Multiprogramming System要能够允许多个Jobs(process)运行。为了达成这件事,就需要Job Scheduling的技术。Job Scheduling技术指的是让各个程序轮流使用CPU,让每支程序都觉得自己一直都在运作。

Multiprogramming有Concurrent跟Parallel两种方法:

concurrent代表一下跑这个一下跑那个,只有单核心的CPU就会采用这种方式。
Parallel代表同时跑好几个Jobs,多核心的才可以这麽运作。

不过基本上核心的数目没办法符合Job的数目,所以通常会是两者合并执行,并且设定一个Job能占用的时这种时间到了就切换成下一个Job,这种作法称为RR(Round-Robin) Scheduling。

First Blood

OS的第一个章节篇幅比较少,跟计算机组织一样,不过放心,後面的篇幅就会很长了。

上一篇 下一篇
RAID I/O运作


<<:  【Day14】:STM32辗压Arduino的功能—TIM(上)

>>:  [Day24] Rocket Web 框架 (Part 1)

5.MYSQL 建立资料库语法

这一篇要跟大家分享的是,直接在程序码的地方建立一个资料表,除了用之前的方法,还可以用下面这个方法 C...

DAY 21 - 四足战车 (2)

大家好~ 我是五岁~ 今天来画四足战车的草图细节~ 首先来画上半部 依照昨天的外型草稿,进一步认真的...

Day22|【Git】合并的另一个指令 - Rebase 与取消方式

前面介绍了 git merge 指令合并分支,本篇就来介绍另一种方式: Rebase 。 从 Reb...

为了转生而点技能-JavaScript,day11(函式内的变数、Callback function

前言:本篇目的为简要纪录函式内的变数种类与功能、参数赋予及厘清Callback function的运...

day29_ARM 也想来挖矿(下)

XMRig 上一篇已经介绍过了几款 ARM 挖矿的装置,如 Android 手机, 树莓派, Mac...