美文网首页
基本概念

基本概念

作者: loopppp | 来源:发表于2019-06-16 13:12 被阅读0次
    • 操作系统的核心是内核,通常指分配和管理计算机软硬件资源的软件模块
    • 内核的主要功能和职责如下
    • 进程调度:linux属于多任务/抢占型的os,每个进程的占用cpu的时间以及哪些进程获得cpu资源都是由进程调度程序定义的,进程调度程序则是内核软件的一部分
    • 内存管理:物理内存是有限的资源,为了实现进程与进程之间,进程与内核之间的隔离,采用虚拟内存管理技术;并且在一个进程占用cpu运行时,只有该进程的一部分保留在实际的物理内存中,其余部分保存在硬盘上,只有当发生缺页中断时才会从硬盘中取出需要的内存页。
    • 提供了文件系统
    • 创建和终止进程
    • 管理对设备的访问
    • 负责联网
    • 提供系统调用和应用API
    • 每个用户都有自己的主目录,所有相关的用户信息都存放于/etc/passwd文件中;所有相关的组信息都存放于/etc/group文件中;用户密码存放于/etc/shadow文件中
    • 进程的内存布局如下
    • 正文段,就是程序的指令
    • 数据段,分为已初始化和未初始化数据段
    • 所有进程共享的内核段
    • 系统调用是内核的入口,系统调用将cpu从用户态切换为内核态,以访问内核字段。
    • C标准库的层次位于系统调用之上。应用程序通过调用标准库函数完成一定的功能,同时还会传入必要的参数,存放于栈中;此时内核会将位于栈中的参数置如特定的寄存器中,以便cpu读取;然后标准函数会将一个与该系统调用相关的编号置入特定的寄存器中,然后执行一条特定的中断指令(x86下位于0x80处),引发cpu从用户态转变为内核态,并执行中断处理程序;中断处理程序会调用system_call(),具体如下
    1. 在内核栈中保存相关寄存器的值
    2. 审核系统调用编号的有效性
    3. 在存放系统调用服务例程的列表中找到对应编号的服务
    4. 执行该服务例程,可能会涉及到对用户内存的修改,执行完后将结果状态返回给system_call()
    5. 从内核栈中恢复各寄存器值,并将系统调用返回结果置于栈中
    6. 返回至标准库函数,同时将cpu切换回用户态

    相关文章

      网友评论

          本文标题:基本概念

          本文链接:https://www.haomeiwen.com/subject/tzdstctx.html