当前位置:网站首页>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
边栏推荐
- 大数据岗位基础要求有哪些?
- 如何让脚本同时兼容Python2和Python3?
- Computer network application layer
- 老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
- Copy the picture
- 国内三大云数据库测试对比
- Dynamic relu: Microsoft's refreshing device may be the best relu improvement | ECCV 2020
- 写时复制集合 —— CopyOnWriteArrayList
- Introduction to nmon
- centos7下安装iperf时出现 make: *** No targets specified and no makefile found. Stop.的解决方案
猜你喜欢
How does semaphore, a thread synchronization tool that uses an up counter, look like?
Five design patterns frequently used in development
B. protocal has 7000eth assets in one week!
APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
理论与实践相结合彻底理解CORS
How does semaphore, a thread synchronization tool that uses an up counter, look like?
A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
基于链表的有界阻塞队列 —— LinkedBlockingQueue
梁老师小课堂|谈谈模板方法模式
架构中台图
随机推荐
Chapter five
数据库设计:范式与反范式
梁老师小课堂|谈谈模板方法模式
使用容器存储表格数据
Introduction to nmon
API生命周期的5个阶段
综合架构的简述
c++11-17 模板核心知识(二)—— 类模板
LeetCode-11:盛水最多的容器
B. protocal has 7000eth assets in one week!
平台商业化能力的另一种表现形式SAAS
Have you ever thought about why the transaction and refund have to be split into different tables
Newbe.ObjectVisitor Example 1
Fiddler can't grab requests from browsers like Google_ Solution
Linked blocking queue based on linked list
Five design patterns frequently used in development
移动大数据自有网站精准营销精准获客
Mobile big data own website precise marketing and accurate customer acquisition
基于链表的有界阻塞队列 —— LinkedBlockingQueue
A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!