프로세스 2

[친절한SQL튜닝]SQL이 느린 이유_2

오늘의 SQL 공부 들어갑니다. SQL이 느린 이유를 아시나요?그 이유는 바로 디스크I/O 때문입니다. 친절한sQL튜닝에서 저자는 I/O를 "잠"이라고 표현합니다. 시스템이 I/O를 처리하는동안 프로세스는 잠을 자기 때문입니다. 잠깐.ᐟ 여기서 프로세스는 뭔지 아시나요? 프로세스란  '실행 중인 프로그램'을 의미합니다. 특정 순간에는 하나의 프로세스만 CPU를 사용할수있기 때문에 프로세스는 생명주기를 갖습니다.  프로세스가 데이터를 디스크에서 읽어와야할 때는 CPU를 OS에게 반환하고 쉬어야합니다.(waiting) 프로세스가 열심히 일해야 속도가 빠른데 디스크I/O가 발생한 경우 한가하게 잠을 자고있는겁니다…ᐟ 그러면 성능이 안좋아지고 느려질수밖에 없습니다.

CS/DB 2024.06.10

프로세스의 생성(fork, exec,exit)

프로세스의 생성 부모프로세스가 자식프로세스를 복제 생성한다. 인간세계에서는 부모가 먼적 죽고 자식이 처리하지만(?) 프로세스 세계에서는 자식 프로세스가 먼저 죽고, 이를 부모 프로세스가 처리한다. 복제는 어떻게? 부모프로세스의 주소공간 내용을 그대로 자식 프로세스의 주소공간으로 복사한다. 부모 프로세스와는 다른 자식프로세스의 프로그램을 실행해야할 경우 복제된 주소공간 위에 새로운 프로그램의 주소공간을 덮어씌어 실행한다. fork() 시스템 콜 -> 자식 프로세스를 생성할 때 부모 프로세스의 내용을 그대로 복제 생성한다. exec() 시스템 콜 -> 새로운 프로그램으로 주소공간을 덮어씌운다. 복제하는 것은 fork()라는 시스템콜을 이용하고, 새로운 프로그램으로 덮어씌우는 것은 exec() 라는 시스템콜을..

3-2/OS 2021.12.23
1