I have a good understanding of how to use windows, a basic understanding of linux, and I would say a very good knowledge base about computer hardware. I have read about 100 pages from a text I bought entitled "modern operating system concepts 7th Edition" and I am making good progress. My plan was to read this text from cover to cover, take a whole lot of notes and review myself a lot, figuring that would be an excellent base along with my current knowledge to tackle coding. The only problem is the text is starting to use a fair amount of coding as examples to the concepts. Thus the chicken and the egg paradox...

I am still able to grasp the concepts of what the text is talking about, and I am picking up a few coding tid bits here and there. However, for the most part I do not understand what the coding means in these instances, and they brief descriptions are really not enough to fill me in. The below in quotes would be an example:

Code:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
pid-t pid;
/* fork a child process */
pid = fork();
if (pid < 0) {/* error occurred */
fprintf(stderr, "Fork Failed");
exit (-1) ;
}
else if (pid == 0} {/* child process */
execlpf"/bin/Is","Is",NULL);
}
else {/* parent process */
/* parent will wait for the child to complete */
wait(NULL);
printf("Child Complete");
exit (0) ;
which is a unique integer. A new process is created by the forkO system
call. The new process consists of a copy of the address space of the original
process. This mechanism allows the parent process to communicate easily with
its child process. Both processes (the parent and the child) continue execution
at the instruction after the f ork(), with one difference: The return code for
the forkO is zero for the new (child) process, whereas the (nonzero) process
identifier of the child is returned to the parent.
Typically, the execO system call is used after a forkO system call by
one of the two processes to replace the process's memory space with a new
program. The exec () system call loads a binary file into memory (destroying
the memory image of the program containing the execO system call) and
starts its execution. In this manner, the two processes are able to communicate
and then go their separate ways. The parent can then create more children; or,
if it has nothing else to do while the child runs, it can issue a wait () system
call to move itself off the ready queue until the termination of the child.
Not adequate enough to really explain how this is working for me. I can't really come to these forums and tell somebody to teach me every time this happens either. I can still get the idea though. So I guess my question is, should I start learning basic code and then go on to finish reading this text, or should I just not worry about the code for now, learn the concepts, then figure out the specifics later?