当前位置:  技术问答>linux和unix

linux的多用户怎么解释?

    来源: 互联网  发布时间:2016-06-03

    本文导语:  关于 linux  多用户操作是什么意思? 请教各位高人 说的直白一点 谢谢 | 多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,...

关于 linux  多用户操作是什么意思?
请教各位高人
说的直白一点
谢谢

|
多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。因此多用户特性变成了衡量操作系统好坏的重要标准,如何保障用户公平的使用系统也成了系统设计者必须要考虑的问题。
----而不是同时使用,哈,
为了实现多用户特性,Linux系统将进程的生存周期划分为4种状态: 
   (1)进程正在用户态下执行;

   (2)进程正在核心态下执行;

   (3)进程未正在执行,但是它已准备好——一旦调度程序选中了它,它就可以投入运行。很多进程可以处于这一状态,而调度算法决定哪个进程将成为下一个执行的进程;

   (4)进程正在睡眠。

    4种状态的转换并不是任意的,而是一个有向图。状态转换图如下所示:
linux的多用户怎么解释?[图片]












    因为任何时刻一个处理机仅能执行一个进程,所以至多有一个进程可以处在第一种状态和第二种状态。这两个状态相应于两种执行态:用户态和核心态。划分这两个级别主要是对系统提供保护,核心态可以执行一些特权指令和进入用户态,而用户态则不能。核心态与用户态的划分为Linux多用户特性提供了保证。

    Linux中大部分的系统调用包含在Linux的libc库中,通过libc调用方法可以调用这些系统调用。因此,当用户进程需要使用系统资源时(如文件、显示器输出、打印机输出等),会通过调用标准C函数库中的函数实现相应功能(如open打开文件、printf进行显示器输出等)。系统调用的激活有两种方法:system_call函数和lcall7调用门(call gate)。还有一种syscall函数,是通过调用lcall7实现的,所以不算作一种特有的方法。对于内部代码来说,system_call是所有系统调用的入口点,lcall7用来支持iBCS2(Inter二进制兼容规范标准的版本2,这里不作讨论)。用户进程通过libc激活system_call,该libc会把自己希望传递的参数装载到CPU寄存器中,并触发0x80软件中断,即Int $0x80。这个过程检查系统调用号,这个号码告诉内核进程请求哪种服务。然后,它查看系统调用表(sys_call_table)找到所调用的内核函数入口地址。接着,就调用函数完成相应功能,等返回后,做一些系统检查,最后返回到进程(或到其他进程,如果这个进程时间用尽)。这便是用户进程进行系统调用的整体过程。

    在一个分时系统中如Linux, 几个进程能同时进行,并且它们可能都进行了系统调用。内核将通过禁止任意的上下文切换和控制中断的发生保护核心态下运行的一致性。仅当进程从“核心态运行 ”状态转移到“在内存中睡眠”状态时,内核才允许上下文切换。在核心态下运行的进程不能被其他进程所抢占,因此内核有时被称为不可抢先的(non-preemptive),尽管内核也并不抢占用户态下的进程。由于处理系统调用之前的数据是准备好的,所以在系统调用的过程中不会出现死锁状态。又因为内核处于不可抢先状态,所以内核可保持它的数据结构一致性,从而解决了互斥(mutual exclusion)问题——保证在任何时刻至多一个进程执行临界区代码。

    举个例子,设有三个用户进程A、B、C同时进行系统调用函数。进程睡眠的条件是临界区处于上锁状态。在任一时刻只能有一个进程在执行,它发现临界区是上了锁的,就在临界区变为开锁的状态的事件上等待。终于,临界区的锁解开了,所有的等待的进程被唤醒并进入“就绪”状态。内核最终选择一个进程(比如B)执行。进程B发现临界区处于开锁状态,于是为临界区上锁,并且继续执行。如果后来进程B在为临界区解锁之前再次去睡眠(例如等候I/O操作的完成),则内核能调度其他进程去运行。如果它选择了进程A,进程A发现临界区处于上锁状态,那么它就再次去睡眠。进程C也做同样的事情。最后,进程B醒来并为缓冲区解锁,允许进程A也允许进程C存 取缓冲区。因此,保证了至多一个进程能获得资源的存取。再此期间,进程的睡眠与唤醒过程应被考虑成“原子的”:一个进程瞬时地进入睡眠状态,并停留在那儿 直至它被唤醒。在它睡眠之后,内核调度另一个进程去运行,并切换后者的上下文。由此可见,临界区在任何时刻只有至多一个进程在执行。

    总体说来Linux实现多用户特性的关键在于,将所有系统调用在将数据准备好后通过一个接口(system_call) 进入核心态,由核心态进行权限检查控制,并且保证资源的独占访问。在表面上看,系统调用就合其他的函数调用一样,只要结果符合预计的情况,应用程序就不能 确定是否真正使用了内核,从而达到核心态切换对用户层透明的目的。这样的过程也就保证了,每个用户进程对资源操作的互不影响。从而实现了Linux系统的多用户特性。

|
Linux是一个真正的多用户操作系统,这表示它可以同时接受多个用户登录。
Linux还允许一个用户进行多次登录,这是因为Linux和许多版本的UNIX一样,
提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台
是与系统直接相连的监视器和键盘)进行多次登录

|
多用户操作系统:任何能够被多个用户使用的计算机系统。尽管由几个人共享的微型机可以认为是多用户系统,但该词主要是指若干人可通
过通信设备或网络终端同时访问的机器。

linux肯定是支持多用户的操作系统

|
比如说很多人用终端同时登录上机器,同时使用机器,互相不受影响
可以用telnet,ssh
甚至可以用没有计算功能的纯终端,用串口线登录上机器
大家在同一时间使用此机器
晕到死也有类似功能了,多个人可以用mstsc登录到同一台机器上
执行不同的功能
不过互相之间会有影响吧,这样用的人也比较少,非主流

|
是网络,(要)突破了个人PC操作系统的局限。
是服务器那方面的事。

    
 
 

您可能感兴趣的文章:

  • linux中/dev下都是些什么文件啊?大侠们谁可以帮我解释一下?
  • linux 解释
  • 哪位高手可以解释下Linux的消息机制吗?谢谢
  • 在linux下sed 怎么使用请大虾给点纤悉的解释
  • 由谁在Linux下用java顺利解释过.class文件?
  • 哪位高人有Linux/Unix下的HTML解释器?请共享一下。急用。3X。
  • linux下载shell解释器问题
  • 请大家解释一下Linux的各种启动模式。
  • 请帮我解释一下linux下"updatedb"这个命令的含义,谢谢:-)
  • 大虾解释一下linux内核中的页着色。
  • 解释一下Linux下的SHELL编程,急!
  • linux10+apache+tomcat5.0整合详细解释一下
  • 这条Linux命令如何解释
  • linux修改目录和文件权限的简单命令解释
  • 哪位前辈给解释下linux下虚拟内存和物理内存的关系!
  • 谁有linux内核解释方面的书籍?
  • 求linux的一些命令解释
  • 各位高手,谁能解释一下在Linux下的.la文件是怎么样编释的?以及怎么样才使用?
  • 学习linux下编程时,一些概念问题,请帮助解释,谢谢
  • 请高手指教,给我解释一下LINUX的好处呗????????
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • proftp中,如何让FTP的用户是非Linux用户,只是FTP用户?
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • 我装的是RED HAT LINUX 8.0,我在root用户中把root用户删除了,怎办也进不了root用户
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux下如何将一个用户从用户组中删除
  • 我装了中软Linux3.1,启动时要求输入用户名和口令,但安装时并没有提示指定用户名,所以现在输入用户名老是错误,不能进入系统,请问该怎
  • linux使用shell脚本,如何创建用户,并设置用户密码?能否给出示例?
  • linux c 如何添加本地用户,修改密码,删除用户?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • linux c下利用srand和rand函数生成随机字符串
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • Linux c++虚函数(virtual function)简单用法示例代码
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • 我们网站的服务器从windows2000迁往linux,ASP程序继续使用,可是我连LINUX的皮毛都不了解,大家告诉我LINUX下怎么建网站??
  • 移动开发 iis7站长之家
  • 中文Linux与西文Linus分别哪一个版是权威?I认为是:中科软的白旗Linux与西文的绿帽子Linux!大家的看法呢?
  • Linux下c基于openssl生成MD5的函数
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3