精华内容
下载资源
问答
  • 指令周期基本概念

    千次阅读 2012-05-16 10:51:22
    指令周期基本概念  计算机之所以能自动地工作是因为CPU能从存放程序的内存中取出一条指令并执行这条指令;紧接着又是取下一条指令,执行下一条指令…,如此周而复始,构成一个封闭的循环。除非遇到停机指令,...
    指令周期的基本概念
    

      计算机之所以能自动地工作是因为CPU能从存放程序的内存中取出一条指令并执行这条指令;紧接着又是取下一条指令,执行下一条指令…,如此周而复始,构成一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。
        通常将一条指令从取出到执行完毕所需要的时间称为指令周期。对应指令执行的三个阶段,指令周期一般分为:取指周期、取操作数周期和执行周期三个部分。 
      1. 取指周期 
      取指周期是取出某条指令所需的时间
      在取指周期中CPU主要完成两个操作:(1)按程序计数器PC的内容取指令(2)形成后继指令的地址; 
      取指周期=(指令的长度/存储字的长度)×主存的读/写周期 
      我们可以用设计指令格式时缩短指令长度、设计主存时增加主存储字字宽和采用快速的主存等措施来缩短取指周期,提高取指的速度。
      2. 取操作数周期 
      取操作数周期是为执行指令而取操作数所需的时间
      取操作数周期的长短与操作数的个数有关、与操作数所处的物理位置有关还与操作数的寻址方式有关。取操作数周期中应完成的操作是,计算操作数地址并取出操作数。操作数有效地址的形成由寻址方式确定。寻址方式不同,有效地址获得的方式不同、过程不同,提供操作数的途径也不同。因此操作数周期所进行的操作对不同的寻址方式是不相同的。 
      3. 执行周期 
      执行周期是完成指令所规定的操作和送结果所需的时间
      它与指令规定的操作复杂程序有关。例如,一条加法指令与一条乘法指令的指令周期亦不相同。执行周期还与目的操作数的物理位置和寻址方式有关。状态信息中的条件码在执行周期中存入程序状态字PSW。若该指令是转移指令,在该周期中还要生成转移地址。
      指令周期常常用若干个CPU周期表示,CPU周期也称为机器周期。由于CPU内部的操作速度较快,而CPU访问一次内存所花的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU周期。每个机器周期又包含若干个时钟周期。
      一个指令周期包含的机器周期个数亦与指令所要求的动作有关,如单操作数指令,只需要一个取操作数周期,而双操作数指令需要两个取操作数周期。实际上,不同的指令可以有不同的机器周期个数,而每个机器周期又可包含不同的时钟脉冲个数。 
      在CPU的控制中除了有取指周期、取操作数周期、执行周期外,还有中断周期、总线周期及I/O周期。中断周期用于完成现行程序与中断处理程序间的切换,总线周期用于完成总线操作及总线控制权的转移,I/O周期完成输入输出操作。  
      需注意的是,指令周期中所包含的CPU周期的长度并不是相同的,因此指令周期又有定长CPU周期组成的指令周期,不定长CPU周期组成的指令周期。
    展开全文
  • Java JVM的基本概念、结构、生命周期

    千次阅读 2020-03-30 11:34:49
    介绍了JVM的基本概念、JVM的生命周期、大概结构。

    介绍了JVM的基本概念、JVM的生命周期、大概结构。

    1 JVM简介

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    引入Java语言虚拟机JVM后,Java语言在不同平台上运行时不需要重新编译。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行,因此屏蔽了与具体平台(win、mac)相关的信息,使得只需要一份字节码文件,就可以在多种平台上不加修改地运行。

    不仅如此,现在的JVM还实现了语言的无关性,Scala、Kotlin、Groovy等语言都可以使用JVM运行。

    编译后被Java虚拟机所执行的代码使用了一种平台中立(不依赖于特定硬件及操作系统)的二进制格式来表示, 并且经常(但并非绝对)以文件的形式存储, 因此这种格式称为class 文件格式。 实际上JVM的平台、语言无关性的上层原因也是因为.class文件格式的平台、语言无关性。

    2 JVM的生命周期

    2.1 启动

    JVM实例对应了一个独立运行的java程序,它是进程级别。

    启动一个Java程序时,会首先建立一个JVM实例,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点

    2.2 运行

    main()作为该程序初始线程的起点,任何其他线程均由该线程启动。

    JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程通常由JVM自己使用,java程序也可以标明自己创建的线程是守护线程(Thread的setDaemon(true)方法)。

    2.3 消亡

    1. 当程序中的所有非守护线程都终止时,JVM退出;
    2. 若安全管理器允许,程序也可以使用System.exit(0)或 Runtime.getRuntime().exit()来退出。
    3. 程序所在平台强制结束JVM进程

    3 JVM的体系结构

    3.1 JVM组成

    主要分成三块:

    1. 类装载器(ClassLoader)(用来装载.class文件)
    2. 执行引擎(执行字节码,或者执行本地方法)
    3. 运行时数据区(方法区、堆、java栈、PC寄存器、本地方法栈)

    注意:java编译器把java源文件(.java文件)编译成字节码文件(.class文件),然后JVM对字节码文件进行加载、解释执行。java的源代码是无法直接在JVM上运行的,Java编译器在JDK中,可以使用javac命令对Java源文件进行编译。

    3.1 JVM各模块简介

    在这里插入图片描述

    我们的后续学习主要学习的内容是JVM的类加载机制、运行时数据区域、GC机制、执行引擎机制、以及一些JVM优化

    对于源文件的编译,并不属于JVM的范畴,编译原理的内容比较复杂,但是我们可以了解一下,Java源代码编译大概步骤为:

    在这里插入图片描述

    生成的字节码文件中包含结构信息、元数据、方法信息等,具体的字节码结构在类文件结构部分。深入了解编译器可以看《自己动手实现jvm》、《编译原理》等书。

    JVM对Java字节码进行加载、执行,JVM的类加载是通过ClassLoader及其子类来完成的,执行的过程抽象如下:

    在这里插入图片描述

    参考资料:

    1. R大博客
    2. Java代码编译和执行的整个过程

    如有需要交流,或者文章有误,请直接留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!

    展开全文
  • 目录基本概念AbilitySlice路由配置生命周期Page生命周期回调AbilitySlice生命周期Page与AbilitySlice生命周期关联AbilitySlice间导航同一Page内导航不同Page间导航跨设备迁移实现IAbilityContinuation接口请求迁移...


    基本概念

      Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和

      当一个Page由多个AbilitySlice共同构成时,这些AbilitySlice页面提供的业务能力应具有高度相关性。例如,新闻浏览功能可以通过一个Page来实现,其中包含了两个AbilitySlice:一个AbilitySlice用于展示新闻列表,另一个AbilitySlice用于展示新闻详情。Page和AbilitySlice的关系如图所示。
    Page和Ability关系图
      相比于桌面场景,移动场景下应用之间的交互更为频繁。通常,单个应用专注于某个方面的能力开发,当它需要其他能力辅助时,会调用其他应用提供的能力。例如,外卖应用提供了联系商家的业务功能入口,当用户在使用该功能时,会跳转到通话应用的拨号页面。与此类似,HarmonyOS支持不同Page之间的跳转,并可以指定跳转到目标Page中某个具体的AbilitySlice。

    AbilitySlice路由配置

      虽然一个Page可以包含多个AbilitySlice,但是Page进入前台时界面默认只展示一个AbilitySlice。默认展示的AbilitySlice是通过setMainRoute()方法来指定的。如果需要更改默认展示的AbilitySlice,可以通过addActionRoute()方法为此AbilitySlice配置一条路由规则。此时,当其他Page实例期望导航到此AbilitySlice时,可以在Intent中指定Action,详见不同Page间导航。

    setMainRoute()方法与addActionRoute()方法的使用示例如下:

    public class MyAbility extends Ability {
        @Override
        public void onStart(Intent intent) {
            super.onStart(intent);
            // 设置主AbilitySlice
            setMainRoute(MainSlice.class.getName());
     
            // 设置ActionRoute
            addActionRoute("action.pay", PaySlice.class.getName());
            addActionRoute("action.scan", ScanSlice.class.getName());
        }
    }
    

    addActionRoute()方法中使用的动作命名,需要在应用配置文件(config.json)中注册:

    {
        "module": {
            "abilities": [
                {
                    "skills":[
                        {
                            "actions":[
                                "action.pay",
                                "action.scan"
                            ]
                        }
                    ]
                    ...
                }
            ]
            ...
        }
        ...
    }
    

    生命周期

      系统管理或用户操作等行为均会引起Page实例在其生命周期的不同状态之间进行转换。Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放资源),这有助于提升应用的性能和稳健性。

    Page生命周期回调

      Page生命周期的不同状态转换及其对应的回调,如图所示。
    Page生命周期回调

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setMainRoute(FooSlice.class.getName());
    }
    
    • onStart() 当系统首次创建Page实例时,触发该回调。对于一个Page实例,该回调在其生命周期过程中仅触发一次,Page在该逻辑后将进入INACTIVE状态。开发者必须重写该方法,并在此配置默认展示的AbilitySlice
    • onActive() Page会在进入INACTIVE状态后来到前台,然后系统调用此回调。Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态。Page将保持在此状态,除非某类事件发生导致Page失去焦点,比如用户点击返回键或导航到其他Page。当此类事件发生时,会触发Page回到INACTIVE状态,系统将调用onInactive()回调。此后,Page可能重新回到ACTIVE状态,系统将再次调用onActive()回调。因此,开发者通常需要成对实现onActive()和onInactive(),并在onActive()中获取在onInactive()中被释放的资源。
    • onInactive() 当Page失去焦点时,系统将调用此回调,此后Page进入INACTIVE状态。开发者可以在此回调中实现Page失去焦点时应表现的恰当行为。
    • onBackground() 如果Page不再对用户可见,系统将调用此回调通知开发者用户进行相应的资源释放,此后Page进入BACKGROUND状态。开发者应该在此回调中释放Page不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作
    • onForeground() 处于BACKGROUND状态的Page仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此Page),系统将先调用onForeground()回调通知开发者,而后Page的生命周期状态回到INACTIVE状态。开发者应当在此回调中重新申请在onBackground()中释放的资源,最后Page的生命周期状态进一步回到ACTIVE状态,系统将通过onActive()回调通知开发者用户。
    • onStop() 系统将要销毁Page时,将会触发此回调函数,通知用户进行系统资源的释放。销毁Page的可能原因包括以下几个方面:

       - 用户通过系统管理能力关闭指定Page,例如使用任务管理器关闭Page。

       - 用户行为触发Page的terminateAbility()方法调用,例如使用应用的退出功能。

       - 配置变更导致系统暂时销毁Page并重建。

       - 系统出于资源管理目的,自动触发对处于BACKGROUND状态Page的销毁。

    AbilitySlice生命周期

      AbilitySlice作为Page的组成单元,其生命周期是依托于其所属Page生命周期的。AbilitySlice和Page具有相同的生命周期状态和同名的回调,当Page生命周期发生变化时,它的AbilitySlice也会发生相同的生命周期变化。此外,AbilitySlice还具有独立于Page的生命周期变化,这发生在同一Page中的AbilitySlice之间导航时,此时Page的生命周期状态不会改变。

      AbilitySlice生命周期回调与Page的相应回调类似,因此不再赘述。由于AbilitySlice承载具体的页面,开发者必须重写AbilitySlice的onStart()回调,并在此方法中通过setUIContent()方法设置页面,如下所示:

    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
    
        setUIContent(ResourceTable.Layout_main_layout);
    }
    

      AbilitySlice实例创建和管理通常由应用负责,系统仅在特定情况下会创建AbilitySlice实例。例如,通过导航启动某个AbilitySlice时,是由系统负责实例化;但是在同一个Page中不同的AbilitySlice间导航时则由应用负责实例化。

    Page与AbilitySlice生命周期关联

      当AbilitySlice处于前台且具有焦点时,其生命周期状态随着所属Page的生命周期状态的变化而变化。当一个Page拥有多个AbilitySlice时,例如:MyAbility下有FooAbilitySlice和BarAbilitySlice,当前FooAbilitySlice处于前台并获得焦点,并即将导航到BarAbilitySlice,在此期间的生命周期状态变化顺序为:

    1. FooAbilitySlice从ACTIVE状态变为INACTIVE状态。
    2. BarAbilitySlice则从INITIAL状态首先变为INACTIVE状态,然后变为ACTIVE状态(假定此前BarAbilitySlice未曾启动)。
    3. FooAbilitySlice从INACTIVE状态变为BACKGROUND状态。

    对应两个slice的生命周期方法回调顺序为:

    FooAbilitySlice.onInactive() --> BarAbilitySlice.onStart() --> BarAbilitySlice.onActive() --> FooAbilitySlice.onBackground()

    在整个流程中,MyAbility始终处于ACTIVE状态。但是,当Page被系统销毁时,其所有已实例化的AbilitySlice将联动销毁,而不仅是处于前台的AbilitySlice。

    AbilitySlice间导航

    同一Page内导航

      当发起导航的AbilitySlice和导航目标的AbilitySlice处于同一个Page时,您可以通过present()方法实现导航。如下代码片段展示通过点击按钮导航到其他AbilitySlice的方法:

    @Override
    protected void onStart(Intent intent) {
     
        ...
        Button button = ...;
        button.setClickedListener(listener -> present(new TargetSlice(), new Intent()));
        ...
     
    }
    

      如果开发者希望在用户从导航目标AbilitySlice返回时,能够获得其返回结果,则应当使用presentForResult()实现导航。用户从导航目标AbilitySlice返回时,系统将回调onResult()来接收和处理返回结果,开发者需要重写该方法。返回结果由导航目标AbilitySlice在其生命周期内通过setResult()进行设置。

    @Override
    protected void onStart(Intent intent) {
     
        ...
        Button button = ...;
        button.setClickedListener(listener -> presentForResult(new TargetSlice(), new Intent(), 0));
        ...
     
    }
     
    @Override
    protected void onResult(int requestCode, Intent resultIntent) {
        if (requestCode == 0) {
            // Process resultIntent here.
        }
    }
    

      系统为每个Page维护了一个AbilitySlice实例的栈,每个进入前台的AbilitySlice实例均会入栈。当开发者在调用present()或presentForResult()时指定的AbilitySlice实例已经在栈中存在时,则栈中位于此实例之上的AbilitySlice均会出栈并终止其生命周期。前面的示例代码中,导航时指定的AbilitySlice实例均是新建的,即便重复执行此代码(此时作为导航目标的这些实例是同一个类),也不会导致任何AbilitySlice出栈。

    不同Page间导航

      不同Page中的AbilitySlice相互不可见,因此无法通过present()或presentForResult()方法直接导航到其他Page的AbilitySlice。AbilitySlice作为Page的内部单元,以Action的形式对外暴露,因此可以通过配置Intent的Action导航到目标AbilitySlice。Page间的导航可以使用startAbility()或startAbilityForResult()方法,获得返回结果的回调为onAbilityResult()。在Ability中调用setResult()可以设置返回结果。

    跨设备迁移

      跨设备迁移支持将Page在同一用户的不同设备间迁移,以便支持用户无缝切换的诉求。以Page从设备A迁移到设备B为例,迁移动作主要步骤如下:

    1. 设备A上的Page请求迁移。
    2. HarmonyOS处理迁移任务,并回调设备A上Page的保存数据方法,用于保存迁移必须的数据。
    3. HarmonyOS在设备B上启动同一个Page,并回调其恢复数据方法。

    实现IAbilityContinuation接口

    • onStartContinuation() Page请求迁移后,系统首先回调此方法,开发者可以在此回调中决策当前是否可以执行迁移,比如,弹框让用户确认是否开始迁移。
    • onSaveData() 如果onStartContinuation()返回true,则系统回调此方法,开发者在此回调中保存必须传递到另外设备上以便恢复Page状态的数据
    • onRestoreData() 源侧设备上Page完成保存数据后,系统在目标侧设备上回调此方法,开发者在此回调中接受用于恢复Page状态的数据。注意,在目标侧设备上的Page会重新启动其生命周期,无论其启动模式如何配置。且系统回调此方法的时机在onStart()之前。
    • onCompleteContinuation() 目标侧设备上恢复数据一旦完成,系统就会在源侧设备上回调Page的此方法,以便通知应用迁移流程已结束。开发者可以在此检查迁移结果是否成功,并在此处理迁移结束的动作,例如,应用可以在迁移完成后终止自身生命周期。
    • onRemoteTerminated() 如果开发者使用continueAbilityReversibly()而不是continueAbility(),则此后可以在源侧设备上使用reverseContinueAbility()进行回迁。这种场景下,相当于同一个Page(的两个实例)同时在两个设备上运行,迁移完成后,如果目标侧设备上Page因任何原因终止,则源侧Page通过此回调接收终止通知。
      说明:一个应用可能包含多个Page,仅支持迁移的Page需要实现IAbilityContinuation接口。同时,此Page所包含的所有AbilitySlice也需要实现此接口。

    请求迁移

      实现IAbilityContinuation的Page可以在其生命周期内,调用continueAbility()或continueAbilityReversibly()请求迁移。两者的区别是,通过后者发起的迁移此后可以进行回迁。

    try {
        continueAbility();
    } catch (IllegalStateException e) {
        // Maybe another continuation in progress.
        ...
    }
    

    以Page从设备A迁移到设备B为例,详细的流程如下:

    1. 设备A上的Page请求迁移。
    2. 系统回调设备A上Page及其AbilitySlice栈中所有AbilitySlice实例的IAbilityContinuation.onStartContinuation()方法,以确认当前是否可以立即迁移。
    3. 如果可以立即迁移,则系统回调设备A上Page及其AbilitySlice栈中所有AbilitySlice实例的IAbilityContinuation.onSaveData()方法,以便保存迁移后恢复状态必须的数据。
    4. 如果保存数据成功,则系统在设备B上启动同一个Page,并恢复AbilitySlice栈,然后回调IAbilityContinuation.onRestoreData()方法,传递此前保存的数据;此后设备B上此Page从onStart()开始其生命周期回调。
    5. 系统回调设备A上Page及其AbilitySlice栈中所有AbilitySlice实例的IAbilityContinuation.onCompleteContinuation()方法,通知数据恢复成功与否。

    请求回迁

      使用continueAbilityReversibly()请求迁移并完成后,源侧设备上已迁移的Page可以发起回迁,以便使用户活动重新回到此设备。

    try {
        reverseContinueAbility();
    } catch (IllegalStateException e) {
        // Maybe another continuation in progress.
        ...
    }
    

    以Page从设备A迁移到设备B后并请求回迁为例,详细的流程如下:

    1. 设备A上的Page请求回迁。
    2. 系统回调设备B上Page及其AbilitySlice栈中所有AbilitySlice实例的IAbilityContinuation.onStartContinuation()方法,以确认当前是否可以立即迁移。
    3. 如果可以立即迁移,则系统回调设备B上Page及其AbilitySlice栈中所有AbilitySlice实例的IAbilityContinuation.onSaveData()方法,以便保存回迁后恢复状态必须的数据。
    4. 如果保存数据成功,则系统在设备A上Page恢复AbilitySlice栈,然后回调IAbilityContinuation.onRestoreData()方法,传递此前保存的数据。
    5. 如果数据恢复成功,则系统终止设备B上Page的生命周期。
    展开全文
  • 单片机周期概念

    千次阅读 2017-02-11 19:22:53
    我们要想对单片机内部运行有一个深刻的了解,单片机周期概念我们必须要知道,对于单片机来说,有时钟周期、机器周期、指令周期、总线周期等,我们接下来逐个讲解一下;

    我们要想对单片机内部运行有一个深刻的了解,单片机周期的概念我们必须要知道,对于单片机来说,有时钟周期、机器周期、指令周期、总线周期等,我们接下来逐个讲解一下;

    时钟周期:表示为外接晶振的倒数,在一个时钟周期内,CPU仅完成一个基本操作;32MHZ即1秒可做32M个基本操作,完成一个基本操作的时间为1/32us;8051把一个时钟周期定义为一个节拍P,两个节拍为一个状态周期S;

    机器周期:在计算机中,为了便于管理,常把一条指令的执行过程分为若干阶段,一个阶段完成一项工作,而完成一项工作(基本操作)所需要的时间就是机器周期;在8051中,一个机器周期由6个状态周期组成,即1机器周期=6状态周期=12时钟周期;

    指令周期:执行一条指令所需要的时间,一般由若干机器周期组成,根据指令的复杂程度不同,所需要的机器周期也不同;

    总线周期:存储器和IO端口是挂接在总线上的,CPU要对其进行访问要通过总线来实现,即CPU通过总线对存储器或IO口进行一次访问所需要的时间为总线周期;

    好了,我们有了周期的概念之后,对延时函数进行分析一下,加深印象:

    void delay_ms(unsigned long time)
    {
        time *= 100;
    
        while(time--)
        {
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
            asm("NOP");
        }
    }

    上面是一个非常简单的延时函数,” asm(“NOP”); ” 的含义就是执行一次空操作;接下来我们对这段程序分析一下:

    前面说了,8051的外部晶振为32MHZ,” asm(“NOP”); “为单指令周期,且不经过总线就可以实现,即: (1/32) * 12 = 0.375us,即执行这么一条语句的时间为0.375微妙,0.375(us) * 27 * 100 = 1012.5(us) = 1.0125ms,近似于1ms;这就是这个函数数字背后的含义!!!

    展开全文
  • 时钟周期 机器周期 指令周期概念

    千次阅读 2012-12-09 19:55:41
     时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。  在一个时钟周期内,...
  • 时钟周期 ...例如12M的晶振,它的时间周期就是1/12 us(这里是还没有分频的)),是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。 对于某种单片机,若采用了1M...
  • 机器周期,时钟周期概念

    千次阅读 2012-02-25 16:47:27
     时钟周期(Clock Cycle):又称节拍周期,是处理操作的最基本单位。(晶振频率的倒数,也称T状态)  指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有...
  • 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅...
  • 发布-订阅模式(Publish-Subscribe Pattern) 事件的生命周期-注册和注销 事件与scope继承树-$emit以及$broadcast 事件的停止传播以及阻止默认行为 事件在scope生命周期中的应用 本节介绍1和2。
  • 面向对象基本概念

    万次阅读 多人点赞 2019-02-06 21:56:15
    面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体...对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。 面向对象编程(OOP:object-orie...
  • 大学都快读完了,突然发现自己对这个概念挺模糊的,想想自己有时有点急于求成又有点好高骛远,结果是很多基本的东西没搞明白,有点悲哀啊,查了下,进一步加强理解了,呵呵。 时钟周期  时钟周期也称为振荡周期...
  • 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。  在一个时钟周期内,...
  • 指令周期:CPU每取出一条指令并执行这条指令,都要完成一系列的操作 操作所需要的时间叫做一个指令周期。指令周期是取出一条指令并执行这条指令的时间。CPU周期也称机器周期。通常含一个机器周期的指令称为单周期...
  • 完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是 计算机通过内部或外部总线进行一次信息传输从而...
  • 51单片机的周期概念

    千次阅读 2016-10-02 22:16:58
    1.时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。 2.在一个时钟周期内,...
  • NFV基本概念

    万次阅读 多人点赞 2019-07-29 11:26:27
    1.NFV相关基本概念 NFV(网络功能虚拟化) SDN(软件定义网络) 一个NFV的标准架构包括NFV infrastructure(NFVI),MANO(Management and Orchestration)和VNFs,三者是标准架构中顶级的概念实体。 NFVI(NFV ...
  • K8s基本概念入门

    万次阅读 多人点赞 2018-03-19 00:00:00
    序言 没等到风来,绵绵小雨,所以写个随笔,聊聊k8s的基本概念。 k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的...
  • 【Kubernetes】浅析基本概念和原理

    万次阅读 2021-05-30 12:44:12
    摘要:本文从 Kubernetes (K8S) 的几个核心概念入手,对 K8S 的整体架构设计进行了概括性分析,进而对 K8S 的认证、授权、准入控制的相关内容进行了介绍。 1 核心概念和架构设计 1.1 概念与层级关系 Image 镜像的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 280,764
精华内容 112,305
关键字:

周期的基本概念