自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 消息传递通信的实现方式

直接消息传递系统 —— 利用OS所提供的发送命令(原语)直接通信原语1)对称寻址方式 —— 要求发送进程和接收进程都必须以显式方式提供对方的标识符。系统提供以下两条通信命令:send(receiver,message);receive(sender,message);不足:一旦改变进程的名称,则可能需要检查所有其他进程的定义,有关对该进程旧名称的所有引用都必须查找到,以便将其修改为新名称,显然,这样的方式不利于实现进程定义的模块化。2)非对称寻址方式 —— 接收进程可能需要与多个发送进程通

2020-08-15 15:31:22 4771

原创 进程通信

进程通信是指进程之间的信息交换。高级通信机制可归纳为四类:共享存储器系统消息传递系统管道通信系统客户机—服务器系统共享存储器系统 Shared-Memory System两种类型:基于共享数据结构的通信方式基于共享存储区的通信方式进程公用某些数据结构,借以实现进程间的信息交换,操作系统仅提供共享存储器,由程序员负责对公用数据结构的设置及对进程间同步的处理为了传输大量数据,在内存中划出了一块共享存储区域,诸进程可通过对该共享区的读或写交换信息,实现通信,数据的形式和位置甚

2020-08-15 12:43:19 280

原创 进程同步

基本概念为保证多个进程能有条不紊低运行,在多道程序系统中,必须引入进程同步机制——硬件同步机制、信号量机制、管程机制主要任务:对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。两种形式的制约 —— 对于同处于一个系统中的多个进程1)间接相互制约关系多个程序在并发执行时,由于共享系统资源,致使在这些并发执行的程序之间形成相互制约的关系。对于像打印机、磁带机这样的临界资源,必须保证多个进程对之只能互

2020-08-14 23:31:11 698 1

原创 进程控制

进程控制是进程管理中最基本的功能。一般由OS的内核中的原语来实现。主要包括:1)创建新进程2)终止已完成的进程3)将因发生异常情况而无法继续运行的进程置于阻塞状态4)负责进程运行中的状态转换进程创建1. 进程的层次结构OS中,允许一个进程(父进程)创建另一个进程(子进程),由此形成了一个进程的层次结构(进程树)。1)子进程可以继承父进程所拥有的资源,例如继承父进程打开的文件、父进程分配到的缓冲区等。2)当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。3)此外,在撤销父进程时

2020-08-11 23:11:26 656

原创 操作系统内核和处理器执行状态

进程控制是进程管理中最基本的功能。一般由OS的内核中的原语来实现。主要包括:1)创建新进程2)终止已完成的进程3)将因发生异常情况而无法继续运行的进程置于阻塞状态4)负责进程运行中的状态转换操作系统内核通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块公用的一些基本操作),都安排在仅靠硬件的软件层次中,将它们常驻内存,即通常被称为OS内核。为了防止OS本身及关键数据(如PCB等)遭受到应用程序有意或无意的破坏,通常

2020-08-06 11:57:38 1267

原创 进程管理中的数据结构

一方面,为了便于对计算机的各类资源(包括硬件和信息)的使用和管理,OS将它们抽象为相应的各种数据结构,以及提供一组对资源进行操作的命令,用户利用这些数据结构和操作命令来执行相关的操作,无需关系具体实现细节另一方面,操作系统作为计算机资源的管理者,尤其是为了协调诸多用户对系统中共享资源的使用,它还必须记录和查询各类资源的使用及各类进程运行情况的信息,OS对于这些信息的组织和维护也是通过建立和维护各种数据结构的方式来实现的。1. 操作系统中用于管理控制的数据结构每个资源和每个进程都设置了一个数据结构,用于

2020-07-17 11:56:36 3398

原创 进程前言

在早期未配置OS的系统和单道批处理系统中,程序的执行方式是顺序执加粗样式行,即在内存中仅装入一道用户程序,由它独占系统中的所有资源,只有在一个用户程序执行完成后,才允许装入另一个程序并执行。在多道程序系统中,由于内存中可以同时装入多个程序,使它们共享系统资源,并发执行。程序执行程序顺序执行一个应用程序由若干个程序段组成,每一个程序段完成一个特定的功能,在执行时,它们都需要按照某种先后次序顺序执行,仅当前一程序段完成后,才运行后一程序段。即便是一个程序段,也可能存在执行顺序问题。程序顺序执行时特征

2020-07-16 23:58:00 218

原创 操作系统的主要功能

引入OS的主要目的是:为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行能最大程度地提高系统中各种资源的利用率方便用户使用基本功能:处理机管理存储器管理设备管理文件管理为了方便用户使用OS,还需向用户提供方便的用户接口。1. 处理机管理主要功能:创建和撤销进程对进程进行协调实现进程之间的信息交换按照一定算法把处理机分配给进程进程控制多道程序环境下,作业并发执行 ----- 必须为每道作业创建一个或多个进程,并为之分配资源当进程运行结束

2020-07-13 00:53:30 1447

原创 操作系统的基本特性

多道批处理系统、分时系统、实时系统这三种基本操作系统都具有各自不同的特征,如批处理系统有着高的资源利用率和系统吞吐量;分时系统能获得及时响应;实时系统具有实时特征。除此之外,它们还共同具有并发、共享、虚拟、异步 四个基本特征并发并行性:两个或多个事件在同一时刻发生。(需要多个处理机)并发性:两个或多个事件在同一时间间隔内发生 ---- 一段时间内宏观上有多个程序在同时运行,在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。引入进程在一个未引入进程的系统中

2020-07-11 00:00:27 275

原创 操作系统的发展过程

未配置操作系统的计算机系统1.人工操作方式程序员将已穿孔的纸带 ---- 装入纸带输入机 ---- 启动纸带输入机将纸带上的程序和数据输入计算机 ---- 启动计算机运行 ---- 程序运行完毕并取走计算结果 ---- 下一个用户上机缺点:用户独占全机CPU等待人工操作 ---- 人工操作方式严重降低了计算机资源的利用率,此即人机矛盾。2. 脱机输入/输出方式为了解决人机矛盾及CPU和I/O设备速度不匹配的矛盾输入设备 ---- 外围机 ---- 磁盘事先将装有用户

2020-07-10 00:25:54 413

原创 操作系统的目标和作用

操作系统的目标1.方便性无OS ------- 用户要直接在计算机硬件上运行程序 ------ 需用机器语言书写程序有OS ------- 系统可使用编译命令将用户采用高级语言书写的程序翻译成机器代码 或者 直接通过OS所提供的各种命令操纵计算机系统2.有效性第一层含义:提高系统资源的利用率 (推动OS发展的最主要动力)第二层含义:提供系统的吞吐量有效性和方便性是设计OS时最重要的两个目标。3.可扩充性为了适应计算机硬件、体系结构以及计算机应用发展的需求4.开放性系

2020-07-09 22:56:55 826

原创 算法效率的度量

一般情况下,算法中基本操作系统重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n) = O( f(n) )它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。类似于算法的时间复杂度,以空间复杂度作为算法所需存储空间的量度,记作S(n) = O( f(n) )一个上机执行的程序除了需要存储空间来寄存本身所用指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。若输入数据所

2020-07-05 20:19:07 308

原创 算法

算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。算法的5个重要特性:1、有穷性 有穷步之后结束,且每一步都可在有穷时间内完成。2、确定性 每一条指令必须有确切的含义。并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。3、可行性 算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。4、输入 零个或多个5、输出 一个或多个算法设计的要求:1、正确性 算法应当满足具体问题的需求

2020-07-05 19:57:51 305

原创 数据结构基本概念

数据:。 是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据项:一个数据元素由若干个数据项组成,数据项是数据的不可分割的最小单位。以图书馆的书目检索系统为例,所有书的所有相关信息为数据,一本书的相关信息为数据元素,一本书的书目信息的每一项(如书名、作者名等)为一个数据项。数据对象: 是性质相同的数据元素的集合,是数据的一个子集。数据结构:相互之间存...

2020-07-05 19:07:26 690

原创 数据结构概述

一般来说,用计算机解决一个具体问题时,大致需要经过以下几个步骤:1、首先要从具体问题抽象出一个适当的数学模型2、然后设计一个解此数学模型的算法3、最后编出程序4、进行测试、调整直至得到最终解答寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。简单来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。由于数据必须在计算机中进行处理,因此,不仅考虑数据结构本身的...

2020-07-05 16:18:39 89

原创 Socket通信

在基于流套接字的数据传递方式下,在两个网络应用程序(一个称为服务器应用,另一个称为客户机应用)之间发送和接收信息时,需要建立一个可靠的连接。Java中与流套接字相关联的类有3个:InetAddressServerSocketSocketInetAddress对象描绘了32位或128位IP地址ServerSocket对象用在服务器应用中Socket对象是建立网络连接时使用的。...

2020-07-03 11:07:27 162

原创 URL和网络应用

URL(Uniform Resource Locator,统一资源定位符)用于表示Internet上的网络资源,或者说确定在网络中的位置。一个URL通常由4个部分组成,包括协议名、主机名、端口名、路径文件(含有文件路径及文件名)URL类URL(String spec):用指定一个String来创建一个URL对象URL(String protocol,String host,int port,String file):用指定的协议、主机名、端口号、路径文件来创建一个URL对象URL(String p

2020-07-03 00:24:29 229

原创 Java网络技术

Java提供了两种功能强大的网络支持机制:访问网络资源的URL类和网络通信的Socket类。URL是用于访问Internet网上资源的应用;而基于TCP/IP协议中传输层接口Socket,是针对Client/Server模型的网络应用以及实现某些特殊协议的网络应用。Socket可以看成在两个程序进行通信连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket,使这段信息能传达到其他程序中。基于Socket的通信,使得应用程序可将网络互联看成是文件I/O—

2020-07-02 16:47:18 225

原创 Daemon守护线程

Daemon线程是为其他线程提供服务的线程,它的优先级是最低的。典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。一旦所有非Daemon线程完成,程序会终止运行;相反,假若有任何非Daemon线程仍在运行,则程序的运行不会中止。...

2020-07-02 16:31:35 1550

原创 线程同步

synchronized关键字:synchronized(对象){````````}synchronized 方法声明头{`````````}synchronized的使用注意事项如下:1、一个对象中的所有synchronized方法都共享一把锁,这把锁能够防止多个方法对共用内存同时进行的写操作。2、synchronized static方法,可在一个类范围内被相互间锁定起来。3、对于访问某个关键共享资源的所有方法,都必须把它们设为synchronized,否则就不能正常工作。4、假设已

2020-07-02 16:26:40 58

原创 Thread类的常用方法

Thread类的静态方法1、static Thread currentThread():返回当前正在运行的线程的引用2、static void yield():使当前正在运行的线程暂时中断,变为就绪状态,以让其他线程有运行的机会。3、static sleep(int millsecond):以millsecond为单位设置当前线程休眠时间,sleep要抛出异常,必须捕获。Thread类的非静态方法1、void start():启动已创建的线程对象2、void run() :由线程

2020-07-02 16:14:19 862

原创 线程的状态与生命周期

一个线程完整的生命周期通常要经历5个状态:创建状态(Born)、就绪状态(Ready)、运行状态(Running)、阻塞状态(Blocked,Waiting,Sleeping)和死亡状态(Dead)。创建状态当一个Thread类或其子类的对象被声明并创建时,新生的线程对象就处于新建状态。此时它已经有了相应的内存空间和其他资源,并已被初始化。Thread thread1 = new Thread();就绪状态就绪状态又称为可运行状态(Runnable)。处于新建状态的线程,通过调用statrt(

2020-07-02 15:59:03 338

原创 线程的概念

程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序一次动态执行的过程,它对应着从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。每一个进程都有自己独立的一块内存空间、一组系统资源。在进程概念中,每一个进程的内部数据和状态都是完全独立的。并且,进程是操作系统中的概念,由操作系统调度,通过多进程是操作系统能同时运行多个任务程序。线程是进程中可独立执行的子任务,一个进程可以含有一个或多个线程,每一个线程都有一个唯一的标识符。进程和线程的区别为:进程空间大体分为数据

2020-07-01 10:25:08 1032

原创 重新抛出异常

Java中异常对象产生的方式为:1.由Java虚拟机生成2.由Java类库中的某些类生成3.在程序中生成自己的异常对象,即异常可以不是出错产生,而是人为抛出。重新抛出异常对象首先必须生成异常。如果在一个方法中生成了异常,但是该方法并不处理它自己产生的异常,而是沿着调用层次向上传递,由调用它的方法或方法栈来处理这些异常,也叫重新抛出异常。通常的情况是在该方法中并不确切知道如何对这些异常进行处理,比如FileNotFoundException异常,它由FileInputStream的构造方法产生,但在

2020-07-01 10:14:36 1231

原创 异常

Throwable类是所有异常的超类。它有两个子类Error和Exception。Error类及其子类由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等。Java程序不应捕获这些异常。Exception类及其子类代表Java程序中可能发生的异常,并且应用程序可以捕获这些异常。Java将异常分成两种类型:编译时检查性异常(checked exception)和非检查性异常(unchecked exception,又称运行时异常)。对于检查性异常,在程序中必须对其进行处理,否则编译器会指出错误.

2020-07-01 09:51:16 98

原创 内部类

内部类主要用于事件处理。内部类因嵌套在外部类中,而作为外部类的一个成员,可以在内部类中访问外部类内定义的所有成员。外部类成员变量在内部类有效,内部成员函数可调用外部类所有成员,但被调用成员不能用this关键字。内部类可以被定义为protected或private外部类可以直接访问内部类变量的私有成员...

2020-06-29 18:28:43 88

原创 final修饰符

修饰变量:说明该变量是常量,常量的值不能在声明后进行修改,并且在声明时必须对其进行初始化。修饰方法:子类不能重载超类中声明为final的方法。因为子类不可能重写private方法,所以声明为private的方法隐式地为final方法。声明为static的方法也隐式地为final方法,因为只能重写非静态方法。修饰类:声明为final的类不能为超类,final类中所有方法都隐式地为final方法。将类声明为final可以防止程序员创建绕过安全限制的子类。...

2020-06-29 10:56:03 151

原创 接口

在Java中接口主要用于声明一组类的公共操作的接口。接口由一组常量和一组抽象方法组成。接口中不包括变量和有具体实现的方法。(JDK1.8以前没有,JDK1.8接口中可以有具体方法)Java中不直接支持类间的多重继承,但接口支持多重继承,即一个接口可以有一个以上的父接口。接口仅仅规定了一组功能的对外协议和规范,而并没有实现这组功能,这个功能的真正实现是在实现这个接口的各个子类中完成的,即由这些子类来具体定义接口中抽象方法的方法体。接口中声明的数据成员只能是public、static和final型的,所

2020-06-29 10:49:27 68

原创 抽象类

类是一组相同类型对象的描述,即通过类可以抽象出一组对象的公共特性。而一组类的公共特性可以用超类来描述。一组超类的公共特性或公共接口的进一步抽象,可以用抽象类来描述。类的公共接口可用抽象方法描述。每个抽象类中至少包含一个抽象方法(静态方法不能为抽象方法)。抽象类和具体类的区别:抽象类只能作为继承层次结构中的超类,不能创建抽象类的对象;而具体类可以用来创建对象。包含抽象方法的类必须声明为抽象类,抽象类的所有具体子类都必须为超类的抽象方法提供具体实现。抽象超类不能实例化,但可以使用抽象超类来声明引用

2020-06-29 10:37:43 137

原创 import语句

import语句用于导入用户的源代码文件中使用的其他包中的类,这些类和当前类不在同一个包中。如果没有使用import语句导入某个包,但又想使用此包中的某个类,也可以直接在所要的类名前加上包名前缀。JDK1.5增加了import static语句,可导入某个类的某个静态成员或所有静态成员的功能。使用后,可以直接用类中定义的静态变量,前缀的类名可以不必写了。...

2020-06-27 09:38:57 413

原创 类的组合

类的组合是指类之间的一种“has a”的关系,即一个类中的成员可以是其他类(或自身的)引用,把类之间的这种关系叫做类的组合。

2020-06-27 09:30:43 120

原创 成员访问控制

修饰符 本类 同一包中 不同包的子类 不同包的非子类private √默认 √ √protected √ √ √public √

2020-06-27 09:12:52 91

原创 Java数据类型

基本数据类型整型:byte 1 byteshort 2 byteint 4 bytelong 8 byte浮点型:float 4 bytedouble 8 byte布尔型:boolean 1 byte字符型:char 2 byte(‘A’ ~ ‘Z’ : 65 ~ 90‘a’ ~ ‘z’ : 97 ~ 122‘0’ ~ ‘9’ : 48 ~ 57)引用类型数组类接口...

2020-06-26 09:06:22 49

原创 Java关键字

abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinallyfinalifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivatepublicprotectedreturnswitchsynchroni

2020-06-26 08:53:22 91

原创 Java类库(Java API , Application Programming Interface)

一个包是一个已命名的类的集合,一个包还可以包含其他的子包。Java所有的包被称为Java应用程序接口(Java API)。分为:核心包,以java开头的包;可选包,以javax开头的包。核心包和可选包一般被包含在Java开发工具包(JDK)中,它是整个Java的核心,包括了Java运行环境(JRE)、一组Java工具和Java基础类库(rt.jar)。JDK中比较重要的包:java.lang: 提供支持java的基础类java.util: 提供数据结构和常用方法的类java.awt 和 jav

2020-06-25 19:27:08 180

原创 Java语言特点

1.简单性2.面向对象3.平台无关性Java主要靠Java虚拟机(Java Virtual Machine ,JVM)在目标代码级实现平台无关性。JVM是一种抽象机器,它附着于具体操作系统之上,本身具有一套虚拟机的机器指令,并有自己的栈、寄存器组等。但JVM通常在软件上而不是在硬件上实现。4.可移植性Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,而与体系结构无关。5.解释性JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后

2020-06-25 19:17:08 308

原创 面向对象的设计

面向过程一个程序往往由多个模块组成,每一个模块承担一定的任务,然后被封装成一个完整的函数。在面向过程的语言中,这些模块就是函数,函数组成面向过程语言编制的程序单位。面向过程的程序是由赋值语句、条件语句、循环语句和过程调用语句构成的语句序列。采用自顶向下的功能分解法,即一个要解决的问题被分解成若干个子问题直至子问题足够简单,可以在相应的子程序中解决。如C语言中,程序是由main函数加若干个子函数组成,在main函数中调用子函数。自顶向下设计存在的问题:把数据和处理数据的过程分离为相对独立的实体,当数据

2020-06-25 16:21:07 256

原创 设计模式

设计模式单例模式(学习记录)适用和特点饿汉式懒汉式加锁的懒汉式双重检验静态内部类枚举单例(学习记录)适用和特点这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。此设计模式是确保该类只存在一个唯一对象,用于解决类的频繁创建和销毁。可以通过给构造函数加上private访问控制符来达到。饿汉式/** * 饿汉式 * 类加载

2020-06-10 16:06:27 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除