I'm reading operating system and I came across several problems for inter-process communication. These can be solved by using monitor concepts which java provide via synchronized keyword.
I wish to know how synchronized keyword have been implemented? I tried to look at the source but I couldn't able to find it. Are synchronized are using system calls like down up (  which semaphore uses basically) to monitor the locks? 
Does JVM help in this process?
I'm a novice in Java, I wish to know how things works before I go into thread concepts in java.
Thanks in advance.