Operating Systems 2017F Lecture 8
This class was review of older classes and answering questions (No new topics)
User mode: only mode available to us Kernel: make a request for memory Kernel: abstracts that, it provides you with the RAM you need to access by providing an address What is a process: a running program
What is a program: set of the instructions, given to the CPU to execute line by line
Command line/sell/terminal: all same thing
How do processes communicate with each other ? They send signals to each other. For example, parent knows that child has executed when it receives signal
PS: list of process
Orphan process: parent has finished executing and terminated leaving an "orphaned" child process who parent process will become a process from a higher level
Zombie process: Process that has finished executing but its entry still exists in the process list (parent does not wait for child to terminate before it dies)
File system: managing the hard drive, writing and reading to a file etc.
Environment: where we are working
Environment variable: is where configurations are stores, all start with “$” signs. To check resolutions etc. find any info like user etc.
Configurations are stored in an environment variable like $USER
$PATH stores list of all folders that tells shells where to look for
- envp[] stores all environment variables
Data structure stores data. Inode is a datastructure on a filesystem in linux that is used to store file information (however, it does NOT store the name or actual data of the file).
File system Device files stored in /dev
Path: List of all folder into which the shell looks at to find a program if not giving it a full path . “looking for the path to find a program we want to run”. Memory is not continuous Everything is linux is a file , Difference between static and dynamic compilation:
Dynamically linked file: loads code as it needs it
Libraries are dynamically loaded into memory versus when they are loaded statically
Man pages are helpful…
Commands: LSPCI: shows you which hardware you are working with Ps : to find a process ID , coming from the kernel Ps – aux Pstree: displayes the family tree . systemd : first one , always wait on the child and checks if the child has to report something to prevent zombie processes. SIGCHILD : how processes communicate , they send signals to communicate with each other and SIGCHILD is one of them A child send it to the parent when it is done its task. X clock & : generates a clock ? How to redirect a file into a text file?
ps aux | grep xclock > ps.log Generate a file on a strace on a program: we should know the command line to do this Echo $USER : to identify user name Envp[] : stores all the env variables you have /proc/ 1237 ls /proc/1237$ Man man Man readlink : shell command , also a system call Xclock ; is the child of the bash terminal (Do a while loop or a for loop to parse it ) ^ /proc/2363 status? The you get the RAM and all info about the process