技术标签: java linux 操作系统计组计网汇编 操作系统 hadoop 嵌入式
操作系统(Operating System,OS)是控制应用程序执行和充当硬件系统和应用程序之间的界面的软件
。
计算机系统由硬件和软件两部分组成。操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。它在计算机系统中占据了特别重要的地位;
而其它的诸如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于操作系统的支持,取得它的服务。操作系统已成为现代计算机系统(大、中、小及微型机)、多处理机系统、计算机网络、多媒体系统以及嵌入式系统中都必须配置的、最重要的系统软件。
当前比较流行的操作系统有:
操作系统具体能做什么?毫无疑问,我们都知道的有 运行程序、控制多个程序并发运行、管理系统资源、监控系统状态、 提供图形化交互界面、 存储文件,读取文件
官方点说,操作系统应该具备的功能:
一般地说,在计算机硬件上配置的 OS,其目标有以下几点。
方便性和有效性是设计操作系统时最重要的两个目标。
硬件发展时代划分
分时系统实例
所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
1、需求:
虽然多道批处理系统和分时系统已能获得较为令人满意的资源利用率和响应时间,从而使计算机的应用范围日益扩大,但它们仍然不能满足以下某些应用领域的需要。
2、实时任务
在实时系统中必然存在着若干个实时任务,这些任务通常与某个(些)外部设备相关,能反应或控制相应的外部设备,因而带有某种程度的紧迫性。可从不同的角度对实时任务加以分类。
3、实时系统与分时系统特征的比较
实时系统有着与分时系统相似但并不完全相同的特点,下面从五个方面对这两种系统
加以比较。
OS 作为用户与计算机硬件系统之间接口的含义是:OS 处于用户与计算机硬件系统之
间,用户通过 OS 来使用计算机系统。或者说,用户在 OS 帮助下,能够方便、快捷、安全、
可靠地操纵计算机硬件和运行自己的程序。应注意,OS 是一个系统软件,因而这种接口是软件接口。图 1-1 是 OS 作为接口的示意图。由图可看出,用户可通过以下三种方式使用计算机。
在一个计算机系统中,通常都含有各种各样的硬件和软件资源。归纳起来可将资源分为四类:处理器、存储器、I/O 设备以及信息(数据和程序)。相应地,OS 的主要功能也正是针对这四类资源进行有效的管理,即:
可见,OS 的确是计算机系统资源的管理者。事实上,当今世界上广为流行的一个关于 OS 作用的观点,正是把 OS 作为计算机系统的资源管理者。
值得进一步说明的是,当一个计算机系统同时供多个用户使用时,用户对系统中共享资源的需求(包括数量和时间)可能发生冲突,为了管理好这些共享资源(包括硬件和信息)的使用,操作系统必须记录下各种资源的使用情况,对使用资源的请求进行授权,协调诸用户对共享资源的使用,避免发生冲突,并计算使用资源的费用等
对于一个完全无软件的计算机系统(即裸机),它向用户提供的是实际硬件接口(物理接口),用户必须对物理接口的实现细节有充分的了解,并利用机器指令进行编程,因此该物理机器必定是难以使用的。为了方便用户使用 I/O 设备,人们在裸机上覆盖上一层 I/O 设备管理软件,如图 1-2 所示,由它来实现对 I/O 设备操作的细节,并向上提供一组 I/O 操作命令,如 Read 和 Write 命令,用户可利用它来进行数据输入或输出,而无需关心 I/O 是如何实现的。
并发性是指同一时间间隔内发生两个或多个事件。并行性是指同一时刻内发生两个或多个事件
1.并行与并发
并行性和并发性 (Concurrence) 是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。
2.引入进程
应当指出,通常的程序是静态实体(Passive Entity),在多道程序系统中,它们是不能独立运行的,更不能和其它程序并发执行。在操作系统中引入进程的目的,就是为了使多个程序能并发执行。例如,在一个未引入进程的系统中,在属于同一个应用程序的计算程序和 I/O 程序之间,两者只能是顺序执行,即只有在计算程序执行告一段落后,才允许 I/O 程序执行;反之,在程序执行 I/O 操作时,计算程序也不能执行,这意味着处理机处于空闲状态 。但在引入进程后,若分别为计算程序和 I/O 程序各建立一个进程,则这两个进程便可并发执行。由于在系统中具备使计算程序和 I/O 程序同时运行的硬件条件,因而可将系统中的 CPU 和 I/O 设备同时开动起来,实现并行工作,从而有效地提高了系统资源的利用率和系统吞吐量,并改善了系统的性能。引入进程的好处远不止于此,事实上可以在内存中存放多个用户程序,分别为它们建立进程后,这些进程可以并发执行,亦即实现前面所说的多道程序运行。这样便能极大地提高系统资源的利用率,增加系统的吞吐量。为使多个程序能并发执行,系统必须分别为每个程序建立进程(Process)。简单说来,进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如 CPU、存储空间及 I/O 设备等。OS 中程序的并发执行将使系统复杂化,以致在系统中必须增设若干新的功能模块,分别用于对处理机、内存、I/O 设备以及文件系统等资源进行管理,并控制系统中作业的运行。事实上,进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础
3.引入线程
长期以来,进程都是操作系统中可以拥有资源并作为独立运行的基本单位。当一个进程因故不能继续运行时,操作系统便调度另一进程运行。由于进程拥有自己的资源,故使调度付出的开销较大。直到 20 世纪 80 年代中期,人们才又提出了比进程更小的单位——线程(Threads)。通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的 OS 中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视作现代操作系统的一个重要标致。
在操作系统环境下,所谓共享 (Sharing), 是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用,相应地,把这种资源共同使用称为资源共享,或称为资源复用。由于各种资源的属性不同,进程对资源复用的方式也不同,目前主要实现资源共享的方式有如下两种。
操作系统中的所谓“虚拟” (Virtual) ,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的,而后者是虚的,仅是用户感觉上的东西。相应地,用于实现拟的技术称为虚拟技术。在操作系统中利用了两种方式实现虚拟技术,即时分复用技术和空分复用技术。
1、时分复用技术
时分复用,亦即分时使用方式,它最早用于电信业中。为了提高信道的利用率,人们利用时分复用方式,将一条物理信道虚拟为多条逻辑信道,将每条信道供一对用户通话。在计算机领域中,广泛利用该技术来实现虚拟处理机、虚拟设备等,以提高资源的利用率。
2.空分复用技术
早在上世纪初,电信业中就使用频分复用技术来提高信道的利用率。它是将一个频率范围非常宽的信道,划分成多个频率范围较窄的信道,其中的任何一个频带都只供一对用户通话。早期的频分复用只能将一条物理信道划分为十几条到几十条话路,后来又很快发展成上万条话路,每条话路也只供一对用户通话。之后,在计算机中也使用了空分复用技术来提高存储空间的利用率。
应当着重指出:如果虚拟的实现是通过时分复用的方法来实现的,即对某一物理设备进行分时使用,设 N 是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或低于物理设备速度的 1/N。类似地,如果是利用空分复用方法来实现虚拟,此时一台虚拟设备平均占用的空间必然也等于或低于物理设备所拥有空间的 1/N。
在多道程序环境下允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它某进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续执行。可见,由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。
内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,这些都是不可预知的。由于各用户程序性能的不同,比如,有的侧重于计算而较少需要 I/O,而有的程序其计算少而 I/O 多,这样,很可能是先进入内存的作业后完成,而后进入内存的作业先完成。或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性(Asynchronism)。尽管如此,但只要在操作系统中配置有完善的进程同步机制,且运行环境相同,作业经多次运行都会获得完全相同的结果。因此,异步运行方式是允许的,而且是操作系统的一个重要特征。
摘要:在MATLAB2019b环境下训练深度学习目标检测模型。利用MATLABcoder和GPUcoder生成c++代码和CUDA代码,并部署在NVIDIA Jetson TX2开发板上运行。1.利用NVIDIA SDK manager对TX2进行刷机,配置CUDA、cuDNN环境,并安装各种支持包;2.在主机上配置MATLAB环境,包括C++编译器、CUDA、cuDNN、TensorRT和ope...
一般情况:使用python自带的pip库去安装,pip install requests特殊情况:安装失败 使用离线方法安装requests库:首先下载离线包 将离线包解压到 \Python\Python35\Lib\site-packages 安装路径下 在cmd中路径切换到离线包中\...
原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0224/3991.html如果没有深入CoordinatorLayout ,你注定无法在探索Android Design Support Library的路上走多远 - Design Library中的许多view都需要一个CoordinatorLayout。
python文件输入 注释汉字 “# 输入xxx”,报错如下/usr/bin/python2.7 /Users/yyk/Downloads/接口自动化/1.py File "/Users/yyk/Downloads/接口自动化/1.py", line 19SyntaxError: Non-ASCII character '\xe8' in file /Users/yyk/Downloads/接口自动化/1.py on line 19, but no encoding declared; se
一、实验目的使用burpsuite软件实现重放攻击。二、实验准备1.笔记本电脑一台,安装vmware虚拟机和windows XP系统,下载安装burpsuite professional v1.6。2.实验参考了几篇csdn博客和i春秋网站burpsuite视频教程(https://www.ichunqiu.com/course/51241)。三、软件原理Burpsuite...
练习0(并行化创建RDD)先启动spark-shell通过并行化生成rddscala> val rdd1 = sc.parallelize(List(63,45,89,23,144,777,888))rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at :15查看该RDD的分区数量sc...
获取activty title bar:TextView actionTitle = (TextView) findViewById(com.android.internal.R.id.action_bar_title);View actionTitle = getWindow().getDecorView().findViewById(getResources().getIdentif...
目录1.往期回顾2.简述3.模型转化、量化4. 模型评估1.往期回顾rknn3399pro 2小时入门指南(一)基础概念和基本开发流程rknn3399pro 2小时入门指南(二)RKNN刷机攻略详解rknn3399pro 2小时入门指南(三)在PC上搭建RKNN模拟环境、 模型转换代码、RK3399 pro使用rknn3399pro 2小时入门指南(四)h5模型训练、tflite模型生成2.简述rknn3399pro 2小时入门指南(四)中已经生成了mobielnetV1的相关tflite文件
点击下载来源:WinHex(16进制编辑器)WinHex是一款广为人知的16进制文本编辑器,正如开发人员和程序员所知道的,十六进制代码被生成并应用到应用程序代码中,并且彼此之间有着非常深的连接,这样就不会更改任何数据并损坏应用程序。如果用户错误地更改了一行代码,整个应用程序将不起作用。如果初学者想测试他们的程序和应用程序,他们最好遵循一些指南,而不是自己去做。不仅可以编辑十六进制代码,还可以提...
①去除折线图或饼图的虚线其实这里通过颜色就可以定位到设置。 tooltip: { trigger: 'axis', axisPointer: { type: 'cross', crossStyle: { color: '#999' } } }修改一下↓ tooltip: {
There are a group of students. Some of them may know each other, while others don’t. For example, A and B know each other, B and C know each other. But this may not imply that A and C know each other.Now you are given all pairs of students who know each o