当前位置:网站首页>1.操作系统是干什么的?
1.操作系统是干什么的?
2020-11-09 00:28:00 【哈扣hakou】
上一篇我们讲述了计算机的简史,在计算机的发展过程中慢慢出现了操作系统。但是操作系统是干什么的并没有讲述,所以这篇文章将会讲述操作系统在整个计算机领域所扮演的角色。
先看操作系统的定义是什么。
在维基百科是这么介绍的:
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.(操作系统是管理计算机硬件和软件资源,并且能为应用程序提供各种通用服务的系统软件。)
在百度百科是这么介绍的:
操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
通过以上的描述可以看出: 首先,操作系统是一个软件,它与其他应用程序一样,性质上属于软件。 其次,操作系统它能管理计算机硬件资源,比如 CPU、内存、硬盘、鼠标、显示器等等。 而且,操作系统它还能管理计算机上的软件,它可以掌控计算机上其他软件的生杀大权,想干掉谁就干掉谁,想给哪个软件多点资源就给哪个软件多点资源。
所以,操作系统它是作为硬件与应用软件的一个中间协调者,如下图所示。
那操作系统具体的工作都有哪些呢?
1.进程管理。进程可理解为任务,比如播放音乐就是一个进程。每个进程的状态可以分为新建、就绪、运行、阻塞、终止这五个状态,当然在实际的操作系统中进程不止这几个状态,毕竟实际情况总会比较复杂。进程管理就是管理进程在这五个状态的流程:装载程序新建一个进程,为新建的进程分配资源并进入就绪状态,当这个进程拿到 CPU 后即可进行运行,这个时候它进入了运行状态,如果运行一半它的 CPU 就被其他进程抢占了,它就会进入阻塞状态,等待其他进程把 CPU 还给它,当它再次拿到 CPU 进入运行状态并把任务执行完后,它就进入了终止状态,操作系统会将之前分配给它的内存、文件等资源回收,然后将它杀掉。
2.进程同步。如果操作系统自始至终只运行一个进程,那肯定没有进程同步的问题。什么是进程同步呢?就是多个进程去抢资源时,如何安排这些进程获取资源的过程。打个比方,想必我们都去过游乐场,也会发现每个热门项目都会很多人排队。如果把人看做是进程,热门游玩项目看做是资源,当很多人都想去玩某个热门项目而不排队时,这个项目就会乱成一锅粥,甚至整个游玩项目都无法正常进行。如何管理好每个人去使用游玩项目就是所谓的进程同步,现实中人们通常通过排队来实现进程同步,在操作系统中也是一样的原理。
3.内存管理。程序运行起来就成为了进程,而进程能运行起来是需要内存的。还是用人来打个比方,人出生后,需要给他食物、衣服、房子、交通工具等,这些东西可以同比看做是内存资源。当人去世后,这些东西会被进行回收,与操作系统回收进程资源是一样的。
4.存储管理。存储管理不是单单指的是磁盘或者文件管理,它还包括了进程如何对外围设备的 IO。
5.设备管理。一台计算机包括了很多外围设备,比如显示器、磁盘、鼠标、键盘灯,当这些设备要接入计算机时,计算机如何接收这些设备的信息,以及如何管理这些设备,这些都属于设备管理的内容。
上面这些都是操作系统的主要工作内容,它所干的都是一些脏活累活,也是之前操作系统还没出现之前人工所干的活。人创造操作系统的目的就是为了将这些脏活累活转移给机器,减轻人类的负担,增加工作效率。
ps.欢迎关注官方公众号"哈扣"。
版权声明
本文为[哈扣hakou]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4732490/blog/4708440
边栏推荐
- Factory pattern pattern pattern (simple factory, factory method, abstract factory pattern)
- Have you ever thought about why the transaction and refund have to be split into different tables
- APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!
- Five factors to consider before choosing API management platform
- C/C++编程笔记:指针篇!从内存理解指针,让你完全搞懂指针
- First development of STC to stm32
- RabbitMQ快速入门详解
- APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
- Get the first cover image of video through canvas
- Programmers should know the URI, a comprehensive understanding of the article
猜你喜欢
Have you ever thought about why the transaction and refund have to be split into different tables
大数据软件学习入门技巧
Introduction to nmon
[200 interview experience], programmer interview, common interview questions analysis
大数据岗位基础要求有哪些?
Platform in architecture
几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
The vowels in the inverted string of leetcode
Tasks of the first week of information security curriculum design (analysis of 7 instructions)
How to analyze Android anr problems
随机推荐
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
Copy the picture
Fiddler can't grab requests from browsers like Google_ Solution
The vowels in the inverted string of leetcode
Database design: paradigms and anti paradigms
Tips in Android Development: requires permission android.permission write_ Settings solution
What are the basic requirements for big data posts?
[200 interview experience], programmer interview, common interview questions analysis
How to analyze Android anr problems
非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue
Python应用场景多不多?
Python features and building environment
Brief introduction of Integrated Architecture
object
Table join
如何让脚本同时兼容Python2和Python3?
写时复制集合 —— CopyOnWriteArrayList
Nodejs中request出现ESOCKETTIMEDOUT解决方案
Flink's datasource Trilogy 3: customization
android开发中提示:requires permission android.permission write_settings解决方法