안녕하세요. 운영체제를 공부하고 있는 프로그래머입니다.
뒤늦게 공부하고 있는데, 잘 이해가 가지 않는 부분이 있어서 질문드립니다.
기초적인 질문일 것같은데, 부끄럽네요.
드리기전에 멀티코어&멀티프로세스 환경에서 모든 프로세스가 멀티스레드로 작동하고 있다고 가정하겠습니다.
질문을 다음과 같습니다.
1. 멀티코어에서 동시에 같은 프로세스가 작동할 수 있습니까?
1.1 프로세스 스케쥴러는 레디 상태의 프로세스가 적재된 레디 큐에서 선별하는걸로 알고있기에, 동시에 같은 프로세스가 실행될 수 없다고 생각합니다. 이게 맞을까요?
1.2 만약 실행될 수 없다면, 스레드에서 임계영역이란 동시간에 같은 코드(자원)을 접근하는게 아니라, 순차적으로 접근한다고 봐도 될까요?
2. 프로세스에서 I/O 인터럽트가 발생하면, 프로세스가 블로킹 상태가 되어 I/O 완료 인터럽트가 발생할 때까지 레디 큐에 적재되지 않는걸로 알고있습니다.
다만, 이게 멀티 스레드 일 때는 어떻게 됩니까?