Scoped static variables and mutexes

Hi, this is a two-part question mostly to confirm my understanding of a few
technical details.

1) There is no notion of scope for static (in the sense of the "C" keyword)
variables in LLVM IR. Scope is simulated by establishing a naming convention
for global variables that should only be referenced by a particular
function, for example: @function_name.variable_name

2) There is no notion of mutexes as this is something that must be
implemented at the operating system level. However, one could implement a
spin lock in LLVM IR if it makes sense for the task at hand.

Thanks in advance for the responses!