OS系统调用x86

时间:2014-12-03 02:36:35

标签: operating-system x86

在处理教育简单的RISC处理器时,我想知道在实现我的软件中断功能时系统调用是如何工作的。例如,假设我们的程序调用sys_end来结束当前进程。现在我知道这将转到向量表,然后转到代码以结束当前进程。

我的问题是结束进程以管理员模式或用户模式运行的代码?我似乎没有看到的地方指明这一点。我假设它在正常用户模式下可能会造成一个非常严重的问题,因为用户模式进程可以说做一些像邪恶的事情:

for(i = 0; i ++; i< 10000){     int sys_fork //创建子进程 }

这可能非常糟糕我认为操作系统会对流程重复多少次有一些说法,更不用说通过更改系统调用本身的代码,流程可以做的其他有害事情。

1 个答案:

答案 0 :(得分:0)

系统调用在系统调用期间以管理员模式运行。管理员模式是访问硬件(屏幕,键盘)以及保持用户进程彼此隔离所必需的。

对用户进程可能使用或请求的cpu数量,进程数等有(或可以配置)限制,这可以提供一些保护,防止你描述的那种失控程序。

但默认的linux配置允许在紧密循环中创建10k进程;我自己完成了(无论是有意还是无意)