精华内容
下载资源
问答
  • UML的书籍:《UML distilled》、《UML和模式应用》、《UML用户指南》、《UML对象设计与编程》、...下面将对UML的九种+包的基本概念进行介绍以及各个的使用场景。UML分为静态视图和动态视图:静态分为...

    UML的书籍:《UML distilled》、《UML和模式应用》、《UML用户指南》、《UML对象设计与编程》、《UMLOracle8建模》

    d81a0cb40826a22580d6dcb4c2fe1544.png

    d81a0cb40826a22580d6dcb4c2fe1544.png

    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

    UML图分为静态视图和动态视图:

    静态图分为:用例图,类图,对象图,包图,构件图,部署图。

    动态图分为:状态图,活动图,协作图,序列图。

    1、用例图(UseCase Diagrams):

      用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2、类图(Class Diagrams):

        用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

       各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

    2.1.泛化

        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2.2.实现

        【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2.3.关联

        【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

    【代码体现】:成员变量

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2.4.聚合 

        【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

      聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

    【代码体现】:成员变量

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2.5.组合

        【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

      组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

        【代码体现】:成员变量

        【箭头及指向】:带实心菱形的实线,菱形指向整体

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2.6.依赖  

      【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

    【代码表现】:局部变量、方法的参数或者对静态方法的调用

    【箭头及指向】:带箭头的虚线,指向被使用者

    d81a0cb40826a22580d6dcb4c2fe1544.png

    2.7 各种类图关系

    d81a0cb40826a22580d6dcb4c2fe1544.png

    3、对象图(Object Diagrams):

        描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    4、状态图(Statechart Diagrams):

        是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    5、活动图(Activity Diagrams):

    是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。    

    交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。

    活动图是一种表述过程基理、业务过程以及工作流的技术。

    它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    5.1 带泳道的活动图

          泳道表明每个活动是由哪些人或哪些部门负责完成。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    5.2 带对象流的活动图

        用活动图描述某个对象时,可以把涉及到的对象放置在活动图中,并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。对象流用带有箭头的虚线表示。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    6、序列图-时序图(Sequence Diagrams):

        交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。

        序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。

    d81a0cb40826a22580d6dcb4c2fe1544.png

      消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

      序列图中涉及的元素:

    6.1 生命线

        生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    6.2 同步消息

        同步等待消息

    d81a0cb40826a22580d6dcb4c2fe1544.png

    6.3 异步消息

        异步发送消息,不需等待

    d81a0cb40826a22580d6dcb4c2fe1544.png

    6.4 注释

    d81a0cb40826a22580d6dcb4c2fe1544.png

    6.5 约束

    d81a0cb40826a22580d6dcb4c2fe1544.png

    6.6 组合    

        组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段有:抉择、选项、循环、并行。

    7、协作图(Collaboration Diagrams):

        交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而写作图按照空间结构布图

    d81a0cb40826a22580d6dcb4c2fe1544.png

    8、构件图(Component Diagrams):

        构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    9、部署图(Deployment Diagrams):

        描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。

    部署模型的目的:

    描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。

    d81a0cb40826a22580d6dcb4c2fe1544.png

    二、图的差异比较

    1.序列图(时序图)VS协作图

    序列图和协作图都是交互图。二者在语义上等价,可以相互转化。但是侧重点不同:序列图侧重时间顺序,协作图侧重对象间的关系。

    共同点:时序图与协作图均显示了对象间的交互。

    不同点:时序图强调交互的时间次序。

    协作图强调交互的空间结构。

    2.状态图VS活动图

    状态图和活动图都是行为图。状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。状态图描述了一个具体对象的可能状态以及他们之间的转换。在实际的项目中,活动图并不是必须的,需要满足以下条件:1、出现并行过程&行为;2、描述算法;3、跨越多个用例的活动图。

    3.活动图VS交互图

      二者都涉及到对象和他们之间传递的关系。区别在于交互图观察的是传送消息的对象,而活动图观察的是对象之间传递的消息。看似语义相同,但是他们是从不同的角度来观察整个系统的。

    三、UML与软件工程

    UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量。而UML作为一种建模语言,更加有效的实现了软件工程的要求。

      如下图,在软件的各个开发阶段需要的UML图。

    d81a0cb40826a22580d6dcb4c2fe1544.png
    展开全文
  • 操作系统概念第六版翻译版

    热门讨论 2012-08-05 13:11:37
    第一部分概要解释了操作系统是什么、做什么、是怎样设计与构造的,也解释了操作系统概念是如何发展起来的,操作系统的公共特性是什么。第二部分进程管理描述了作为现代操作系统核心的进程以及并发的概念。第三部分...
  • 操作系统概念 银行家算法

    千次阅读 2020-12-02 20:32:16
    循环等待:等待资源的进程之间存在环(存在一组{P0,P1,…,P0}等待过程,这样P0正在等待P1保留的资源,P1正在等待P2,…,Pn-1保留的资源 正在等待Pn保留的资源,而Pn正在等待P0保留的资源。) 用表示如下 2....

    1.死锁产生的四个条件

    互斥:一次只能有一个进程使用资源。
    占有并等待:拥有至少一个资源的进程正在等待获取其他进程拥有的其他资源。
    非抢占:资源只能在拥有资源的进程完成其任务后才自动释放。
    循环等待:等待资源的进程之间存在环(存在一组{P0,P1,…,P0}等待过程,这样P0正在等待P1保留的资源,P1正在等待P2,…,Pn-1保留的资源 正在等待Pn保留的资源,而Pn正在等待P0保留的资源。)
    用图表示如下
    在这里插入图片描述

    2.银行家算法思想

    银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行

    百度百科
    银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构
    在这里插入图片描述
    实际使用中,除了 可利用资源向量Available外,还会涉及以下几个矩阵
    最大需求矩阵Max。nm矩阵,表示n个进程的每一个对m类资源的最大需求。
    分配矩阵Allocation 。n
    m矩阵,表示每个进程已分配的资源数。
    需求矩阵Need 。n*m矩阵,表示每个进程还需要各类资源数。Need=Max-Allocation
    申请资源矩阵request
    在这里插入图片描述
    做题格式
    T0时刻的安全序列{P1,P3,P4,P2,P0}。
    (1)求安全序列
    在这里插入图片描述
    (2)给定一个序列,试探性分配
    在这里插入图片描述
    网上搜的某学校期末真题
    在这里插入图片描述

    展开全文
  • 死锁死锁特征死锁的必要条件:资源分配死锁处理办法死锁预防互斥占有并等待非抢占循环等待死锁避免安全状态资源分配算法银行家算法 死锁特征 进程在使用资源前必须申请资源,在使用资源之后必须释放资源。(申请...

    死锁特征

    进程在使用资源前必须申请资源,在使用资源之后必须释放资源。(申请,使用,释放)

    死锁的必要条件:

    1. 互斥:至少有一个资源处于非共享模式,如果另一个进程申请该资源,必须等到该资源被释放。
    2. 占有并等待:一个进程必须占有至少一个资源,并等待另一个被其他进程占有的资源。
    3. 非抢占:资源不能被抢占,即资源只能在进程完成任务后自动释放。
    4. 循环等待:有一组等待进程{P0,P1,…,Pn},P0等待的资源被P1占有,P1等待的资源被P2占有,…,Pn等待的资源被P0占有。

    四个条件同时满足会引发死锁

    资源分配图

    有向边Pi→Rj称为申请边,有向边Rj→Pi称为分配边
    如果每个资源类型只有一个实例,有环就有死锁。
    如果分配图没有环,那么系统就没有进程死锁。

    进程P1,P2,P3是死锁,进程P2等待资源R3,而R3被进程P3占有。另一方面,进程P3等待进程P1或P2释放资源R2。另外,进程P1等待进程P2释放资源R1。

    死锁处理办法

    • 使用协议预防或避免死锁,确保系统不会进入死锁状态
    • 允许进入死锁,通过检测恢复
    • 可以忽视这个问题

    死锁预防

    确保4个必要条件至少一个不成立

    互斥

    共享资源不要求互斥访问,不会出现死锁,不过有些资源本身就是非共享的。

    占有并等待

    当一个进程申请一个资源时,它不能占有其他资源

    • 一种协议是每个进程在执行前申请并获得所有资源
    • 一种协议是允许进程在没有资源时才能申请资源

    这两种协议的缺点:

    • 资源利用率比较低,很多已分配的资源可能很长时间没有被使用
    • 饥饿,一个需要多个资源的进程会永久等待,其所需的资源分配给了其他进程

    非抢占

    如果一个进程占有资源并申请另一个不能立即分配的资源,其已分配的资源可被抢占。

    循环等待

    对所有资源类型进行完全排序,要求每个进程按递增顺序来申请资源。
    要求当一个进程申请资源类型Rj时,必须释放所有资源Ri (F(Ri)>=F(Rj))

    死锁避免

    上面预防死锁的副作用是低设备使用率和系统吞吐率

    每次申请要求系统考虑现有可用资源,已分配资源和每个进程将来申请与释放的资源,来决定当前申请是否满足或等待,避免死锁的发生。
    例如死锁避免算法动态的检测资源分配状态以确保循环等待的条件不可能成立。

    安全状态

    进程序列{P1,P2,…,Pn},如果对于每个Pi,Pi可以申请的资源数小于当前可用资源加上所有进程Pj (j<i)所占有的资源,那么这一顺序称为安全序列。
    如果存在一个安全序列,那么系统处于安全状态。
    死锁状态时不安全状态。

    资源分配图算法

    假设进程Pi申请资源Rj,只有在将申请边Pi→Rj变成分配边Rj→Pi而不导致资源分配图形成环,才允许分配。通过环检测算法,检测安全性。

    银行家算法

    当进程进入系统,它必须说明可能需要的每种类型资源实例的最大数量,这一数量不能超过系统资源总和。当用户申请一组资源时,系统必须确定这些资源的分配是否仍会时系统处于安全状态。如果是,就分配资源;否则,进程等待直到某个其他进程释放足够资源。

    Available:表示每种资源现有实例的数量
    Max:定义每个进程的最大需求
    Allocation:定义每个进程现在已分配的各种资源类型的实例数量
    Need:表示每个进程还需要的剩余的资源
    Need[i][j]=Max[i][j]-Allocation[i][j]

    举例:
    在这里插入图片描述在这里插入图片描述
    解答:

    Need[i][j]=Max[i][j]-Allocation[i][j]
    Need矩阵:
       A  B  C   D
    P0 0  0  0   0
    P1 0  7  5   0
    P2 1  0  0   2
    P3 0  0  2   0
    P4 0  6  4   2
    
    我们可以测试是否能找出一个安全序列。
    从P0开始,Available={1,5,2,0}
    对P0,可以分配,然后收回,此时Available={1,5,3,2}
    对P1,不能分配,跳过
    对P2,可以分配,然后收回,此时Available={2,8,8,6}
    对P3,可以分配,然后收回,此时Available={2,14,11,8}
    对P4,可以分配,然后收回,此时Available={2,14,12,12}
    对P1,可以分配,然后收回,此时Available={3,14,12,12}
    最终,我们可以得到一个安全序列{P0,P2,P3,P4,P1}
    证明当前系统是安全的
    
    可以被满足,满足以后,Available矩阵等于{1,1,0,0}
    可以找到一个安全序列{P0,P2,P3,P1,P4},完成运行
    现在来验证一下:
    对P0,可以分配,然后收回,此时Available={1,1,1,2}
    对P1,不能分配,跳过
    对P2,可以分配,然后收回,此时Available={2,4,6,5}
    对P3,可以分配,然后收回,此时Available={3,10,9,7}
    对P1,可以分配,然后收回,此时Available={4,10,9,7}
    对P4,可以分配,然后收回,此时Available={4,10,10,11}
    

    死锁检测

    等待图:资源分配图中,删除所有资源类型节点,合并适当边。

    如果所有资源类型只有单个实例,那么可以这样定义死锁检测算法:
    当且仅当等待图中有一个环,系统存在死锁。

    死锁恢复

    进程终止

    • 终止所有死锁进程。
      代价:一些进程可能计算了很长时间
    • 一次只终止一个进程直到取消死锁循环为止
      代价:开销大,每次终止一个进程,都必须调用死锁检测算法确定进程是否仍处于死锁。

    资源抢占

    通过资源抢占以取消死锁,逐步从进程中抢占资源给其他进程使用,直至死锁结束。
    有三个问题:

    • 选择一个牺牲品,抢占哪些资源和哪个进程。
    • 回滚:从其他进程抢占资源仍然不能正常执行,必须回滚到某个安全状态。最有效的方法是将进程回滚到打破死锁。
    • 饥饿:成为牺牲品的进程可能永远不能完成任务;
      解决:确保一个进程只能有限地被选择为牺牲品

    习题

    题目一

    (1)请说明这个实例中死锁的 4 个必要条件
    (2)请设计一条简单的规则来避免产生死锁
    解答
    (1)

    • 互斥,车道的每一个位置只能有一辆车,一个位置不能同时被两辆车享。
    • 占有并等待,当前车辆都占有自己当前车道的位置,并且等待下一个位置,下一个位置则被另外的车辆占有。
    • 非抢占,一辆车占有的位置不能被抢占,即不能被移开
    • 循环等待,图中的车辆可以看成一个序列,每一辆车都在等待下一辆车的位置,造成循环等待。

    (2)在四个路口均设立红绿信号灯,要求在前30秒仅允许横向车辆通过,后30秒仅允许纵向车辆通过,然后以此顺序进行轮转。

    题目二:
    假设系统中有四个相同类型的资源被三个进程共享。每个进程最多需要两个资源。证明这个系统不会死锁。

    解答
    假设该系统陷入死锁。这意味着,每一个进程持有一个资源,并且正等待另一个资源。因为有三个进程和四个资源,一个进程就必须获取两个资源。这一进程并不需要更多的资源,因此当其完成时会返回其资源。
    通解:一个系统包含b个进程,共享同一类型的资源a个,每个进程最多需要c个该类型的资源;假设此时一个进程已经分配了c个该类型的资源,另外b-1个进程分配了c-1个该类型的资源,那么只需要满足(b-1)*(c-1)+c=b(c-1)+1<=a即可以不发生死锁。

    题目三:
    现有单实例资源系统:进程 P1 占有资源 R2,请求资源 R1;进程 P2 占有资源 R1,请求资源 R3 R4 R5;进程 P3 占有资源 R4,请求资源 R5;进程 P4 占有资源 R5,请求资源 R2;进程 P5 占有资源 R3,请求资源 R1;
    (1)请画出对应的资源分配图和资源等待图;
    (2)请问该系统中存在死锁吗?并请给出解释。

    解答
    (1)
    资源分配图:

    资源等待图:

    (2)
    存在死锁,进程P1、P2、P4构成了一个有向环;进程P1、P2、P3、P4构成了一个有向环;P2、P5也构成了一个有向环;
    P4等待P1占有的资源R2,P1等待P2占有的资源R1,P2等待P4占有的资源R5。
    P4等待P1占有的资源R2,P1等待P2占有的资源R1,P2等待P3占有的资源R4,P3等待P5占有的资源P4。
    P2等待P5占有的资源R3,P5等待P2占有的资源R1。

    展开全文
  • 《操作系统概念》讨论了操作系统中的基本概念和算法,并对大量实例(如Linux系统)进行了研究。全书内容共分七部分。第一部分概要解释了操作系统是什么、做什么、是怎样设计与构造的,也解释了操作系统概念是如何发展...
  • 软件:一系列按照特定顺序组织的计算机数据和指令的集合 分为系统软件和应用软件 人家交互方式: 图形化界面:GUI 命令行的方式: Windows常见的DOS命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 ...

    ##JAVA基础
    软件:一系列按照特定顺序组织的计算机数据和指令的集合 分为系统软件和应用软件
    人家交互方式:
    图形化界面:GUI
    命令行的方式:

    Windows常见的DOS命令:

    dir:列出当前目录下的文件以及文件夹

    md:创建目录

    rd:删除目录

    cd:进入指定目录

    cd … :返回上一级目录

    cd:退回根目录

    del:删除文件

    exit:退出命令行

    echo Java基础>1.txt 写入内容到1.txt中

    java是纯面向对象的语言
    JavaSE: 桌面应用

    JavaEE:企业开发,针对web应用程序

    JavaME:支持移动端

    javaCard:java小程序运行在内存小的设备上

    特点一:面向对象:
    类和对象
    特性:继承,封装,多态

    二:健壮性 相对安全的内存管理和访问机制

    三:跨平台:通过java语言编写的应用程序在不同系统上都可以运行:
    在操作系统上安装虚拟机,由JVM负责java程序在该系统上运行

    java的两种核心机制:
    java虚拟机
    垃圾收集机制

    JDK:java开发工具包 编译工具javac.exe 打包工具 jar.exe

    JRE:java运行环境 虚拟机和核心类库

    .java文件(源文件) ->javac.exe 编译 -> .class文件(字节码文件) -> java.exe 运行 ->结果

    ##变量
    概念:内存中的一个存储区域,区域有自己的名称(变量名)和类型(数据类型)

    注意:先声明后使用

    作用域:一个{}

    程序的执行过程: :硬盘中的程序:1.加载到内存区,2.找到main方法开始执行 -->操作系统代码 -->3.执行过程中的内存管理

    栈stack:局部变量,对象声明的引用
    堆heap:new出来的类或数组的实例(含成员变量)
    静态域:静态变量
    常量池(方法区):字符串变量

    基本数据类型:8个

    数值型:

    	整数类型:byte1(-128~127) short2 int4 long8(定义时末尾加L)
    	
    	浮点类型:float4(声明后加F)  double8
    

    字符型

    	char
    

    布尔型

    boolean
    

    引用数据类型

    	类class
    	接口interface
    	数据 []
    

    变量的分类:

    • 方法外,类体内的声明变量:成员变量

    实例变量 不以static修饰

    类变量 static修饰

    • 方法体内声明的变量为局部变量

    方法局部变量 (方法内声明)

    代码块局部变量(代码块中声明)

    ##变量的自动类型转换和强制类型转换

    自动类型转换

    char c1 = 'a';
    int i3 = c1 +1 ;
    

    结果i3=98

    char 和int运算 默认是int类型

     short a = 1;
     byte b =2 ;
     a+b是int类型
    

    int char short 类型之间做运算式int类型

    强制类型转换

    使用强制类型转换符 (数据类型)

    问题:精度的损失

     short s = 10
     s = s+3;
    

    编译出错 s+3变为int类型 将int类型赋值给short类型,编译不通过

    int i=1;
    i *=0.1;
    

    打印 i的值 i为0,*0.1变为double类型,再变化就是赋值给int类型

    运算符:
    instanceOf:检查是否是类的对象
    返回true或者false

    位运算:

    “<<” 左移

    “>>” 右移

    “>>>>” 无符号右移 不关心符号位 移动直接补0

    算术运算

    前++ 先+1 后运算

    后++ 先运算后+1

    ##循环遍历的练习
    从键盘中输入个数不确定的整数,并判断读入的正数和负数的个数,输入0时结束

    import java.util.Scanner;
    
    
    public class H1 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            int a = 0;
            int b = 0;
            for (;;){
                System.out.println("请输入一个整数");
    
                int num = s.nextInt();
                if (num>0){
                    a++;
                }else if (num<0){
                    b++;
                }else
                    break;
            }
            System.out.println("正数个数:"+a+",负数个数:"+b);
        }
    }
    

    循环打印

    		    * 
    		   * * 
    		  * * * 
    		 * * * * 
    		* * * * * 
    		 * * * * 
    		  * * * 
    		   * * 
    		    * 
    
    /*
    打印菱形
    固定数 五行 0~4  i<4   空格是 4-i *号是 i+1
    ----*
    ---* *
    --* * *
    -* * * *
    * * * * *
    i	k-	j*   k = 4 - i   j = i + 1
    0	4	1
    1	3	2
    2	2	3
    3	1	4
    4	0	5
    -* * * *
    --* * *
    ---* *
    ----*
    i	k-	j*   k = i + 1   j = 4 - i
    0	1	4
    1	2	3
    2	3	2
    3	4	1
    */
    public class H1 {
        public static void main(String[] args) {
            //上半部分:
            for(int i = 0;i < 5;i++){
                for(int k = 0;k < 4 - i;k++){
                    System.out.print(" ");
                }
                for(int j = 0;j < i + 1;j++){
                    System.out.print("* ");
                }
                System.out.println();
            }
            //下半部分
            for(int i = 0;i < 4;i++){
                for(int k = 0;k < i + 1;k++){
                    System.out.print(" ");
                }
                for(int j = 0;j < 4 - i;j++){
                    System.out.print("* ");
                }
                System.out.println();
            }
        }
    }
    
    展开全文
  • 4 循环等待  8. 5 死锁避免  8. 5. 1 安全状态  8. 5. 2 资源分配算法  8. 5. 3 银行家算法  8. 6 死锁检测  8. 6. 1 每种资源类型只有单个实例  8. 6. 2 每种资源类型的多个实例  8. 6. 3 应用检测算法 ...
  • 系统模型 死锁特征 死锁发生的必要条件 资源分配 死锁处理方法 确保死锁不会发生(第一种原理) 发生,检测,恢复(第二种原理) 忽略(第三种原理) 死锁预防 互斥-&gt;共享资源 占有并等待-&gt;单恋...
  • 操作系统 --概念

    2018-10-23 22:33:59
    答:前趋,指一个有无循环图,可记为DGA(Directed Acyclic Graph)它用于描述进程直接执行的先后顺序。  引入原因:为了更好地描述程序的顺序和并发执行情况。 2.为什么程序并发执行会产生间断性特征? 答:...
  • 考虑下所示的交通死锁的情况: (1)请说明这个实例中死锁的 4 个必要条件 (2)请设计一条简单的规则来避免产生死锁 解答: (1): 死锁的四个必要条件是: ①互斥:至少一个资源非共享,即一次只能有一个进程...
  • 数据结构~16.的基本概念和存储结构

    万次阅读 多人点赞 2020-08-14 20:47:13
    在上一篇文章里面,我们使用了自定义的栈来代替了系统栈,通过循环实现了二叉树的遍历,提升了效率。其实,我们还有一种方法可以使效率变得更加快捷。甚至连用户自定义的栈都可以省掉。那就是,把二叉树的遍历过程给线性...
  • 计算机系统建模_包

    2020-04-28 15:25:57
    知识总结包5.1包概念5.1.2包的表示5.2包的名称5.2.1包的元素5.2.2包的可见性5.2.4 包的构造型5.3包中的关系5.3.1 依赖关系5.3.2 泛化关系5.4阅读包5.5创建包5.5.1 寻找包5.5.2消除循环包依赖5.6 包...
  • 前趋是一个有向无循环图,记为DAG,可用于描述程序/进程之间执行的前后关系。 2.1.2 程序的顺序执行 在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另...
  •  如果在一个系统中下面4个条件同时满足,那么会引起死锁:互斥、占有并等待、非抢占、循环等待。 资源分配(RAG) 如果中不包含环——无死锁。 如果图形包含一个环: 如果每个资源类型只有一个实例,那么...
  • 1. 前趋关注的是前趋关系,不能有循环 2.程序顺序执行时的特征 (1) 顺序性 处理机的操作严格按程序规定顺序执行 (2) 封闭性 程序一旦开始执行,其计算结果不受外界因素影响。 (3) 可再现性 程序执行只要...
  • 简介: 在利用 MiniGUI 开发应用程序之前,首先要理解的两个概念就是消息循环和窗口过程。消息循环是事件驱动的 GUI 编程之基础。而窗口则是图形用户界面的最基本交互元素。本文描述了 MiniGUI 中与消息相关的几个...
  • 定义:前驱是一个有向无循环图(DAG),用于描述进程之间执行的相互关系。 组成:每个结点表示一条语句,一个进程或程序段。结点间的有向边表示两结点间存在的前驱或偏序关系,用箭头表示。 注意前驱中不能...
  • UML之活动、状态

    千次阅读 2016-07-22 16:25:26
    之前的文章讲解到了用例、类图、包...1、概念:首先回顾以下流程:其常被用来建立算法模型,使用流程可以表示一个算法的执行序列、过程、判定点、分支和循环。活动与流程十分类似。不同之处在于它支持并行活
  • 【学习】概念模式

    2019-09-01 18:29:26
    概念模式是人们在认识事物的过程中,对于某一类事物或一系统形成的框架,也可以称之为“认识”。 常见的概念模式有八种: 框图:描述程序执行的逻辑过程。基本步骤有:处理、判断、输入输出、起始和终结。 结构...
  • 在理解JavaScript事件循环机制之前,先理解几个概念: 进程 进程是是操作系统进行资源分配和调度的基本单位,是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,这里我们可以比喻为一个工厂的车间 ...
  • 线程的基本概念线程是操作系统程序执行的基本单元。不同的操作系统线程的实现方式不同,JVM重新定义了线程,封装了操作系统线程,屏蔽了不同操作系统线程实现细节。如上,是线程类结构。ZGC...
  • 引言 UIKit的概念 ...为了检查和响应来自这些系统(包括操作系统)的消息,应用程序必须不断地在循环中调用自身,同时要实现其自己的目的。通过将系统划分为多个部分来简化这些复杂的任务,这些部分将解决每一
  • 进程的基本概念

    2021-03-25 20:40:49
    在未配置的操作系统中,程序是顺序执行的。 通常把应用程序分成若干段,在各程序段之间,按照某种先后顺序执行。 可以使用前驱来描述程序执行的前后关系。用结点代表各程序段的操作,用箭头表示操作的先后顺序。 2...
  • 游戏开发中需要知道的基础大概有内存管理,UI系统,事件处理,动作行为,缓存机制,粒子系统,场景切换 ,网格特效,地图系统,音频系统,物理引擎等。这里主要介绍在Cocos2d中的一些基本概念。 一、游戏的...
  • UML及其应用之通信

    2020-05-12 17:50:51
    目录 7.2 通信 7.2.1 通信概念 1、定义 2、通信的作用 ...协作是一种交互,强调的是发送和接收消息的对象之间的组织结构,使用协作来说明系统的动态情况。 协作主要描述协作对象间.
  • FIFO缓存是介于两个子系统之间的弹性存储器,其概念图如图1所示。它有两个控制信号,wr和rd,用于读操作和写操作。当wr被插入时,输入的数据被写入缓存,此时读操作被忽视。FIFO缓存的head一般情况下总是有效的,...
  • UML之活动

    千次阅读 热门讨论 2014-02-15 14:36:12
    1.概念 与流程类似,但支持并行活动 缺点:很难清楚的描述动作与...而活动描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。 2)活动能够表示并发活动的情形,而流程
  • 4.2.3线性离散系统的基本概念 4.2.4线性离散系统的仿真分析 4.3连续系统仿真 4.3.1连续系统的基本概念 4.3.2连续系统的仿真分析 4.3.3线性连续系统的基本概念 4.3.4线性连续系统的仿真分析 4.4混合系统仿真 4.4.1...
  • 操作系统-进程

    2016-09-03 21:00:21
    一、前言进程是操作系统中极其重要的概念。在了解进程之前,我们需要对程序和进程之间做一些区别... 前驱 前驱是指一个有向无循环图,DAG(Directed Acyclic Graph) 。 2. 程序顺序执行的特征 顺序性:处理机严格按

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 823
精华内容 329
关键字:

循环系统概念图