Linux的内核特征

Linux操作系统的核心稳定而高效,以独占的方式执行最底层任务,保证其他程序的正常运行,是整个系统的核心,具有独特的性质。

Linux采用多级分页的存储管理模式,具体的技术特征将在后面介绍。

Linux自身使用的专用文件系统为Ext2,可以提供方便有效地文件共享及保护机制,同时,它可以通过虚拟文件系统的技术,支持包括微软系列操作系统所使用的fat16,fat32,和ntfs等文件系统在内的几十种现有的文件系统。

Linux系统具有内置的TCP/IP协议栈,可以提供各种高效的网络功能,包括基本的进程间通讯,网络文件服务等。

结构特征

Linux内核基本采用模块结构,单内核模式,这使得系统具有很高的运行效率,但系统的可扩展性及可移植性受到一定影响。为了解决这个问题,linux使用了附加模块技术。利用模块技术,可以方便的在内核中添加新的组件或卸载不在需要的内核组件,而且这种装载和卸载可以动态进行,即在系统运行过程中完成,而不需要重新启动系统。

引入动态的模块技术,可使系统内具有良好的动态可伸缩性,但是,内核模块的引入也带来了对系统性能,内存利用和系统稳定性的一些影响,可动态装卸的模块需要系统增加额外的资源来记录,管理,而装入的内核模块和其他内核部分一样,具有相同的访问权限,差得内核模块会导致系统不稳定甚至崩溃,特别是一些恶意的内核模块可能对系统安全造成极大危害。

总的来讲,linux内核基本采用模块式结构构造,同时加入动态的模块技术,在追求系统整体效率的同时,实现了内核的动态可伸缩性。这样的结构给系统移植带来一定的负面影响。

发展方向

Linux内核本身的发展方向主要是硬件支持,嵌入系统和分布式系统三个方面

进程管理

进程是操作系统中一个非常重要的概念。程序的运行时通过进程来完成的。在层次结构的操作系统中,进程不仅是系统分配资源的基本单位,而且是CPU调度的基本单位。进程管理师操作系统最重要的功能之一。

1程序的顺序执行

程序是人们要计算机完成的一些指令序列,是一个按严格次序,顺序执行的操作序列,是一个静态的概念。我们把一个具有独立功能的程序独占处理机,直到最后结束的过程称为程序的顺序执行。

2程序顺序执行时的特征

(1)顺序性。处理机的操作严格按照程序所规定的顺序执行,即只有前一个程序段完成才执行下一个程序段,上一条指令完成再去执行下一条指令。

(2)封闭性。程序是在封闭环境下运行的。程序运行时独占全机资源,资源的状态除初始状态外,只有改程序本身才能改变他。程序执行的最终结果由给定的初始条件决定,不受外界因素的影响。

(3)可再现性。顺序执行的最终结果可再现,也就是说它与执行速度及执行的时刻无关,只要输入的初始条件相同,无论何时重复执行改程序,结果都是相同的。

2.程序的并发执行及其特征

1.1并发执行的概念

程序的并发性是指多道程序在同一时间间隔内同时发生,这是为了增强计算机系统的处理能力,提高资源的利用率采取的一种同时操作技术。(并发执行应该像多线程...我的理解而已)

程序并发执行时的特征

程序的并发执行虽然提高了系统吞吐量,但也产生了下述一些与顺序执行时不同的新特征。

(现在我们一般用的是什么执行方式呢)

(1)间断性。程序在并发执行时,由于他们共享系统资源,以及为完成同一项任务而相互合作,致使这些并发执行的程序之间形成了相互制约的关系。

(2)失去封闭性。程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。这样某程序在执行时,必然受到其他程序的影响,例如,当处理机被某个程序占有时,另一程序必须等待。

(3)不可再现性。程序在并发执行时,由于失去了封闭性,也将导致其失去可再现性。

由于程序的顺序性,间断性和不可再现性,用程序作为描述其执行过程和共享资源的基本单位,即增加了操作系统设计和实现的复杂性,又无法反映操作系统应具有的程序段执行的并发性,用户随机性,以及资源共享等特征。也就是说,用程序作为描述其执行过程以及共享资源的基本单位是不合适的。这就需要一个既能描述程序的执行过程,又能用来共享资源的基本单位,这个单位被称为进程。

(如果在程序中进行类的调用,这就是并发执行么)

进程的定义与特征

进程的定义

进程是操作系统中最基本,最重要的概念之一。

(1)进程是程序的一次执行

(2)进程是可以和别的进程并发执行的计算

(3)进程就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程

(4)进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。

(5)进程是动态的,有生命周期的活动。内核可以创建一个进程,最终将由内核终止该进程使其消亡

在linux系统下使用编辑器vi进行编辑,同时打开多个窗口,编辑多个不同名称的文件,vi编辑器是一个可执行程序,不同的文件就是不同的操作数据,而对应于这些文件同时打开的每一个编辑窗口都对应着一个进程,每一个进程都处于不同状态。

如果说程序师提供计算机操作的一组工作流程的话,进程就是具体的工作过程,按照同样的工作流程,针对不同的原料,可以同时开始多个工作过程,得到多种不同的成品。(工作流程是程序,过程是进程)

程序和进程失恋咯完全不同的概念,但又有密切的联系

(1)程序师静态的概念,本身可以作为一种软件资源长期保存,而进程是程序的一次执行过程,是动态概念

(2)进程是一个能独立运行的单位,能与其他进程并发执行。进程是作为资源申请和调度单位存在的;通常的程序不能作为一个独立运行的单位而并发执行。

(3)程序和进程不存在一一对应的关系。一个程序可由多个进程共用,一个进程在某活动中又可顺序的执行若干个程序,一个程序运行一次,便创建一个进程,那么同一个程序运行10次,就产生了10个进程。、

(4)各个进程在并发执行过程中会产生相互制约的关系,造成各自前进速度的不可预测性,而程序本身是静态的,不存在这种异步特征

linux操作系统原理【3】相关推荐

  1. Linux 操作系统原理 — 内存 — 内存分配算法

    目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...

  2. Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术

    目录 文章目录 目录 前文列表 基于局部性原理实现的内-外存交换技术 局部性原理 Swap 交换分区 前文列表 <Linux 操作系统原理 - 内存 - 物理存储器与虚拟存储器> < ...

  3. Linux 操作系统原理 — 内存 — 页式管理、段式管理与段页式管理

    目录 文章目录 目录 前文列表 页式管理 快表 多级页表 基于页表的虚实地址转换原理 应用 TLB 快表提升虚实地址转换速度 页式虚拟存储器工作的全过程 缺页中断 为什么 Linux 默认页大小是 4 ...

  4. Linux 操作系统原理 — 内存 — 基于 MMU 硬件单元的虚/实地址映射技术

    目录 文章目录 目录 前文列表 物理地址与虚拟地址 内存空间的组织方式 虚拟地址空间的编址 内核态地址空间 用户态地址空间 内-外存空间的交换与虚拟存储空间之间的映射关系 缺页异常 前文列表 < ...

  5. Linux 操作系统原理 — 系统结构

    目录 文章目录 目录 Linux 系统架构 Linux 内核 内存管理 进程管理 文件系统 设备驱动程序 网络接口 Shell Linux 系统架构 Linux 系统一般有 4 个主要部分:内核.Sh ...

  6. linux的原理和运用,Linux操作系统原理与应用_内存寻址

    原标题:Linux操作系统原理与应用_内存寻址 第五讲今天上线啦. 在本次课程中,陈老师详细的讲解了有关于内存寻址的演变的相关知识. 第一部分中,介绍了关于内存寻址的相关背景知识.内存寻址-操作系统设 ...

  7. 实验三银行家算法linux,操作系统原理与linux_银行家算法实验报告.doc

    . . . PAGE 成 绩 评 阅 人 评阅日期 计算机科学与技术系 实 验 报 告 课程名称: 操作系统原理与linux 实验名称: 银行家算法 2011年 04 月 实验三 银行家算法 一.实验 ...

  8. linux操作系统原理_Linux内核分析-操作系统是如何工作的(二)

    linux操作系统的主要构架如图1所示,我们知道,操作系统是通过管理CPU进程.存储器.文件系统.设备驱动.以及网络接口等相关部分来工作的,我们这里主要是通过分析关于CPU的操作即进程的管理执行来分析 ...

  9. Linux操作系统原理与应用01:概述

    目录 1. Linux内核的技术特点 1.1 单内核结构 1.1.1 单内核特性 1.1.2 微内核特性 1.2 抢占式内核 1.2.1 非抢占式内核特性 1.2.2 抢占式内核特性 1.3 支持动态 ...

  10. linux操作系统原理_Linux后台开发C++学习路线技能加点,已拿鹅厂offer

    大家好我是lemon,最近在知乎经常被邀请回答类似如何学习C++和C++后台开发应该具体储备哪些基础技能的问题,围观原文链接: 非常详细的 Linux C/C++ 学习路线总结!助我拿下腾讯offer ...

最新文章

  1. c语言输入学生成绩q退出,哭诉、拜求C语言学生成绩管理系统
  2. 在SQL Server 2008中配置文件流(FILESTREAM)
  3. 生成删除约束语句 SQL语句
  4. mysql jdbc 表结构_JavaEE_day09_MySQL多表JDBC
  5. linux centos ubuntu yum apt-get 强制使用 ipv4 ipv6
  6. OpenGL之常见的专业名词解析
  7. pythondockerapi_docker-py 用Python调用Docker接口的方法
  8. P3567 [POI2014]KUR-Couriers
  9. 01.jupyter环境安装
  10. LuoguP2756 飞行员配对方案问题(最大流)
  11. 信号与系统matlab实验报告,信号与系统实验报告.doc
  12. android模拟器多点触摸,Windows 7 多点触摸开发模拟器和多点触摸驱动
  13. css border边距 在盒子内部呈现,不占用外部Px
  14. Win10清理C盘垃圾
  15. 堆溢出off-by-one(asis-ctf-2016 pwn 之 b00ks)
  16. 微信企业号开发常用工具类总结(一)
  17. Python中可迭代对象是什么?
  18. 信用评分卡Credit Scorecards (1-7)
  19. 可移除 否_用友软件U861质量管理培训 免费阅读可下载
  20. Java网络编程,一对一聊天

热门文章

  1. ubuntu20.04+vtd环境搭建
  2. oracle jde优势介绍,Oracle JDE EnterpriseOne模块的详细功能介绍
  3. win 安装 Xshell 5
  4. zec挖矿(zcash挖矿)鱼池跟蚂蚁矿池的比较到底哪个好?哪个收益高? (二)
  5. ISIS开发出加密安卓通信软件
  6. java excel转dbf
  7. SPSS 24/25/26安装包分享 window和mac版本
  8. 算法设计与分析第二版源码
  9. 小程序页面转pdf时如何实现自动分页
  10. 能源管理系统背景概述