当前位置:网站首页>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
边栏推荐
- B. protocal has 7000eth assets in one week!
- Linked list
- API生命周期的5个阶段
- JVM Zhenxiang series: easy understanding of class files to virtual machines (Part 2)
- A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
- How does pipedrive support quality publishing with 50 + deployments per day?
- Brief introduction of Integrated Architecture
- 实现图片的复制
- 大数据软件学习入门技巧
- 使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?
猜你喜欢
The interface testing tool eolinker makes post request
Have you ever thought about why the transaction and refund have to be split into different tables
简单介绍c#通过代码开启或关闭防火墙示例
基于链表的有界阻塞队列 —— LinkedBlockingQueue
Tips in Android Development: requires permission android.permission write_ Settings solution
A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
大数据软件学习入门技巧
android开发中提示:requires permission android.permission write_settings解决方法
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
如何将 PyTorch Lightning 模型部署到生产中
随机推荐
Five phases of API life cycle
How to get started with rabbitmq
Brief introduction of Integrated Architecture
Travel notes of csp-s 2020
SQL语句的执行
六家公司CTO讲述曾经历的“宕机噩梦”
The vowels in the inverted string of leetcode
使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?
构造函数和原型
Five design patterns frequently used in development
A brief introduction of C code to open or close the firewall example
小议缓冲区溢出
程序员都应该知道的URI,一文帮你全面了解
Python features and building environment
Using containers to store table data
基于链表的有界阻塞队列 —— LinkedBlockingQueue
Programmers should know the URI, a comprehensive understanding of the article
A bunch of code forgot to indent? Shortcut teach you carefree!
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