本篇主要介绍操作系统基础知识。
操作系统(Operating System,OS)是计算机系统的核心系统软件,其他软件是建立在操作系统基础上,并在操作系统的统一管理和支持下运行。
计算机系统的硬件资源包括中央处理机(CPU)、存储器(主存与外存)和输入/输出设备等物理设备。
操作系统按功能不同可分为:单用户操作系统和批处理操作系统、分时操作系统和实时操作系统、网络操作系统和分布式操作系统以及嵌入式操作系统。
操作系统具有并发性(Concurrency)、共享性(Sharing)、虚拟性(Virtual)和不确定性(non-determinacy)。
操作系统的功能:进程管理、文件管理、存储管理、设备管理和作业管理。
进程调度与死锁
进程调度:进程调度即处理器调度(上线文转换),它的主要功能是确定把处理器在什么时候分配给哪一个进程。在有些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
调度方式:调度方式是指当有更高优先级的进程到来时如何分配CPU。调度方式分为可剥夺和不可剥夺两种。
调度算法:常用的有先来先服务、时间片轮转(roundrobin)、优先级调度和多级反馈调度算法。
死锁:死锁是指两个以上的进程互相都因请求对方已经占有的资源,无限期地等待并无法继续运行下去的现象;死锁是系统的一种出错状态,它浪费系统资源,还会导致整个系统崩溃,所以应该尽量预防和避免死锁。
死锁原因:产生死锁的原因是资源竞争及进程推进顺序非法。产生死锁的4个必要条件是互斥条件、请求保持条件、不可剥夺条件和环路条件。
解决死锁的策略:死锁的处理策略主要有4种,鸵鸟策略(不理睬策略)、预防策略(破坏死锁的4个必要条件之一)、避免策略(精心地分配资源,动态地回避死锁)、检测与解除死锁(一旦发生死锁,系统不但能检测出,还能解除)。
磁盘调度算法:磁盘是可供多个进程共享的设备。磁盘调度室使各进程对磁盘的平均访问时间最小。常用的调度算法有先来先服务(firt-come first-served,FCFS)、最短寻道时间有限(Shortest Seek Time First,SSTF)、扫描算法(SCAN)。
常见操作系统
目前最流行的网络操作系统主要有NetWare系列、Windows系列、UNIX和Linux及相应的服务软件。
UNIX系统:UNIX操作系统是由美国贝尔实验室发明的一种多用户、多任务的分时操作系统。现已广泛运行于中型机和小型机等各种环境,用于大型信息系统的关键业务处理,如数据库和Internet主机。目前,UNIX通常与服务硬件产品集成在一起,具有代表性的有IBM公司的AIXUNIX、SUN公司的SolaresUNIX和HP公司的HPUNIX等。
Windows家族:Windows采用了图形化模式GUI,比起从前的DOS需要键入指令使用的方式更为人性化。随着电脑硬件和软件的不断升级,微软的Windows也在不断升级,从架构的16位、32位再到64位, 系统版本从最初的Windows1.0 到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server服务器企业级操作系统,不断持续更新,微软一直在致力于Windows操作系统的开发和完善。
Linux系统:1991年,芬兰赫尔辛基大学的学生Linux Torvalds利用互联网,发布了他在i386个人计算机上开发的Linux操作系统内核的源代码,创建了具有全部UNIX特征的Linux操作系统。Linux是一个支持多用户、多任务、多进程、实时性较好的、功能强大而稳定的操作系统,也是目前运行硬件平台最广泛的操作系统。Linux是以互联网和开放源码为基础的,许多系统软件的设计专家们都利用互联网对它进行了改进和提高。近年来,Linux得到了许多包括IB,、COMPAQ、HP、Oracle、Sybase、Informix在内的许多著名软硬件公司的支持,目前Linux已全面进入应用领域。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Mac OS:Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。Macintosh组包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。Mac OS X 于 2001年 首次在商场上推出。它包含两个主要的部分:Darwin,是以 BSD 原始代码和 Mach 微核心 为基础,类似 Unix 的开放原始码环境。
ISO:iOS操作系统是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。
Android:Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。[8] Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
Windows Phone(简称:WP)是微软发布的一款手机操作系统,它将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。微软公司于2010年10月11日晚上9点30分正式发布了智能手机操作系统Windows Phone,并将其使用接口称为“Modern”接口。2011年2月,“诺基亚”与微软达成全球战略同盟并深度合作共同研发。2011年9月27日,微软发布Windows Phone 7.5。2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。2014年4月2日,微软在旧金山召开Build2014开发者大会。大会上微软推出Windows Phone 8.1更新,2014年8月4日晚,微软正式向WP开发者推送了WP8.1 GDR1预览版,即WP8.1 Update。
Chrome OS:是由谷歌开发的一款基于Linux的操作系统,发展出与互联网紧密结合的云操作系统,工作时运行Web应用程序。谷歌在2009年7月7日发布该操作系统,并在2009年11月19日以Chromium OS之名推出相应的开源项目,并将Chromium OS代码开源。Chrome OS同时支持Intel x86以及ARM处理器,软件结构极其简单,可以理解为在Linux的内核上运行一个使用新的窗口系统的Chrome浏览器。对于开发人员来说,web就是平台,所有现有的web应用可以完美的在Chrome OS中运行,开发者也可以用不同的开发语言为其开发新的web应用。