zoukankan      html  css  js  c++  java
  • 课程学习总结报告

    要求

    请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、分配内存、使用I/O驱动某个硬件等)纳入模型中验证模型。谈谈您对课程的心得体会,改进建议等。

    Linux系统的组成主要由下图的四个部分组成:1,应用程序    2,shell   3,系统调用   4,内核

     而Linux内核主要完成了以下几个功能:

    1.中断

    中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。

    1.1中断类型

    同步中断由CPU本身产生,又称为内部中断。这里同步是指中断请求信号与代码指令之间的同步执行,在一条指令执行完毕后,CPU才能进行中断,不能在执行期间。所以也称为异常(exception)。

    异步中断是由外部硬件设备产生,又称为外部中断,与同步中断相反,异步中断可在任何时间产生,包括指令执行期间,所以也被称为中断(interrupt)。

    异常又可分为可屏蔽中断(Maskable interrupt)和非屏蔽中断(Nomaskable interrupt)。而中断可分为故障(fault)、陷阱(trap)、终止(abort)三类。

    从广义上讲,中断又可分为四类:中断、故障、陷阱、终止。

     

    1.2区分中断号与中断向量

    I/O设备把中断信号发送给中断控制器与之相关联的是一个中断号,当中断控制器把中断信号发送给CPU时与之关联的是一个中断向量。换个角度分析就是中断号是从中断控制器层面划分,中断向量是从CPU层面划分,所以中断号与中断向量之间存在一对一映射关系。在Intel X86中最大支持256种中断,从0到255开始编号,这个8位的编号就是中断向量。其中将0到31保留用于异常处理和不可屏蔽中断。
    2.进程管理

    2.1进程创建

    在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

     2.2进程状态

    在Linux系统中,一个进程被创建之后,在系统中可以有下面5种状态。

    就绪状态和运行状态
    就绪状态的状态标志state的值为TASK_RUNNING。此时,程序已被挂入运行队列,处于准备运行状态。一旦获得处理器使用权,即可进入运行状态。

    可中断等待状态
    状态标志state的值为TASK_INTERRUPTIBL。此时,由于进程未获得它所申请的资源而处在等待状态。一旦资源有效或者有唤醒信号,进程会立即结束等待而进入就绪状态。

    不可中断等待状态
    状态标志state的值为TASK_UNINTERRUPTIBL。此时,进程也处于等待资源状态。一旦资源有效,进程会立即进入就绪状态。

    停止状态
    状态标志state的值为TASK_STOPPED。这种状态主要用于程序的调试,又被叫做“暂停状态”、“挂起状态”。

    中止状态
    状态标志state的值为TASK_DEAD。进程因某种原因而中止运行,进程占有的所有资源将被回收,这种状态也叫做“僵死状态”,进程成为僵尸进程。

     3.文件管理

    3.1VFS

    Linux内核支持装载不同的文件系统类型,不同的文件系统有各自管理文件的方式。Linux中标准的文件系统为Ext文件系统族,当然,开发者不能为他们使用的每种文件系统采用不同的文件存取方式,这与操作系统作为一种抽象机制背道而驰。

    为支持各种文件系统,Linux内核在用户进程(或C标准库)和具体的文件系统之间引入了一个抽象层,该抽象层称之为“虚拟文件系统(VFS)”。

     3.2文件系统

    在LINUX系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。这样带来优势也是显而易见的:
    UNIX 权限模型也是围绕文件的概念来建立的,所以对设备也就可以同样处理了。

    4.时钟

    x86体系的Linux中,主要用到了三种时钟:实时时钟RTC、时间戳计数器TSC及可编程间隔定时器PIT。

    尽管与CPU指令执行没有什么直接关系,时钟对于操作系统来说还是有着很重要的意义: 
    1、记录系统时间。很多应用程序需要知道日期和时间、由日期和时间构成的时间戳也会被打在文件上面、等等; 
    2、统计功能。如top之类的用户程序可以查看一段时间内的系统负载、以及各个进程占用CPU的时间、等等; 
    3、定时功能。很多用户程序会使用到定时器,比如sleep一段时间后做某件事情、比如给select设置一个超时时间、等等; 

    总结

    两位老师同时兼顾了理论和代码实现,自底向上详细通俗的讲解了linux原理,让同学们知其然并知其所以然,既掌握了宏观的linux基本架构,又理解了底层具体的代码实现。只是可惜这门课全程网上授课,缺少了现场大课堂的气氛。

  • 相关阅读:
    4、Cocos2dx 3.0三,找一个小游戏开发Hello World 分析
    Android Bluetooth开发
    详细解析BluetoothAdapter的详细api
    Android 蓝牙( Bluetooth)耳机连接分析及实现
    [Andriod官方API指南]连接之蓝牙
    Android蓝牙A2dp profile的使用
    Android中文API(129) —— AudioManager
    Android中的Audio播放:控制Audio输出通道切换
    JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开
    Android Xfermode 实战 实现圆形、圆角图片
  • 原文地址:https://www.cnblogs.com/xqqu/p/13275406.html
Copyright © 2011-2022 走看看