Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 1.87 KB

process.md

File metadata and controls

52 lines (35 loc) · 1.87 KB

Process

NAME

process - Process abstraction

SYNOPSIS

A magenta process is an instance of a program in the traditional sense: a set of instructions which will be executed by one or more threads, along with a collection of resources.

DESCRIPTION

The process object is a container of the following resources:

In general, it is associated with code which it is executing until it is forcefully terminated or the program exits.

Processes are owned by jobs and allow an application that is composed by more than one process to be threated as a single entity, from the perspective of resource and permission limits, as well as lifetime control.

Lifetime

A process is created via sys_process_create() which take no parameters. The process starts destruction when main thread terminates or the last handle is closed. [⚠ not implemented].

Next, the main binary is loaded into the process via sys_process_load() and its execution begins with sys_process_start().

SYSCALLS


  • job_create - create a new job within a parent job

  • vmar_map - Map memory into an address space range
  • vmar_protect - Change permissions on an address space range
  • vmar_unmap - Unmap memory from an address space range