操作系统春招面试复习之:操作系统概述

一、操作系统做了什么

通过一个例子进行说明:给出一个c程序helloworld

#include<stdio.h>
  int main(int argc, char *argv[]){
    puts(“hello world”);
    return 0;
  }

**说明:**其功能就是在标准的显示器上显示一个字符串。下面看此程序的执行过程。

  • 首先用户要告诉操作系统执行此程序:

    如何告知?比如我们可以在命令行输入相应的命令或者双击此程序的图标。

  • 操作系统接到用户的请求之后就会到磁盘上找到此程序的相关信息,检查其类型是否是可执行文件;并通过程序首部信息,确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址。

  • 为了要执行此程序,操作系统首先要创建一个新的进程,并将此程序的可执行文件映射到该进程结构,表示由该进行执行此程序。之后操作系统为此程序设置CPU上下文环境,并跳到程序开始处(假设调度程序选中了此程序)。

  • 当在执行程序的第一条指令的时候会发生缺页异常:因为程序在执行的时候,先要将程序的代码和数据装入内存,CPU才能够去执行。但是此时还没有读入内存,于是硬件机制就会捕获此异常,并且把控制权交给操作系统。

  • 操作系统管理了系统中的内存,当然内存有很多中,比如这里我们拿页式管理方案的话,内存就会有很多的物理页面,操作系统的内存管理模块就会分配一页空闲物理内存,并且根据前面计算出的磁盘块地址把程序代码读到内存中,然后继续执行程序。有时候程序可能很大,所以一次分配可能不够,于是在执行过程中可能产生多次缺页异常。

  • 然后程序执行puts函数(系统调用)。而puts函数是一个系统调用,于是控制权又交给了操作系统。

  • 操作系统找到要将字符串送往的显示设备,通常设备是由一个进程控制的,所以,操作系统将要写的字符串送给该进程。

  • 控制设备的进程告诉设备的窗口系统它要显示的字符串,窗口系统确定这是一个合法的操作,然后将字符串转换成像素,将像素写入设备的存储映像区。

  • 然后视频硬件将像素转换成显示器可以接收的一组控制/数据信号。显示器然后解释此信号,激发液晶屏。

总结

  • 从用户的角度看上述执行过程

这是从用户角度来看的程序运行过程。

  • 从操作系统的角度来看就是,如果操作系统选中了一个程序,那么就去调度此程序执行,程序执行过程中会不断的陷入操作系统,由操作系统去提供一些服务ÿ
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值