• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

cpu 연산

23.05.15 00:22 작성 조회수 179

0

안녕하세요. cpu 연산 관련해서 질문드립니다.

동시성과 병렬성 각각 cpu연산이 어떤식으로 나누어서 진행되는 것일까요?

연산이 아닌 네트워크인 경우에는 각 작업별인 것을 이해했는데, 연산일 경우 예시를 들어서 설명해주시면 감사하겠습니다.

그리고 이제 파이썬 웹 개발을 막 완료한 초급 개발자인데, 내용이 너무 어려워서..이해가 잘 안되는데 반복하면 될까요? ㅜㅜ추가적인 공부방법도 알려주시길 부탁드립니다.

답변 1

답변을 작성해보세요.

0

먼저 두 가지 개념에 대해 한 번 더 정리하고 설명드리겠습니다.

  • 병렬성(Parallelism)

    • 병렬성은 두 개 이상의 작업이 실제로 동시에 실행되는 상황.

    • 주로 여러 코어를 가진 CPU나 GPU에서 볼 수 있음.

    • 각 코어는 독립적으로 작업을 수행할 수 있으므로, 여러 작업을 동시에 실행할 수 있음.

  • 동시성(Concurrency)

    • 동시성은 두 개 이상의 작업이 동시에 발생하는 것처럼 보이는 상황.

    • 실제로는 이러한 작업들이 빠르게 번갈아 가며 실행되는 것이지만, 사용자는 이러한 작업들이 동시에 진행되는 것처럼 느낌.

    • 예를 들어, 단일 코어 CPU에서 운영체제는 여러 프로세스나 스레드를 관리하며, 각 작업이 동시에 실행되는 것처럼 보이게 할 수 있음. 이는 각 작업을 빠르게 전환하며 CPU 시간을 분할하는 것으로 가능.

       

이미지 처리 작업으로 예시를 들어보면, 동시성의 경우, CPU는 이미지의 한 픽셀을 처리한 후 다음 픽셀로 넘어가며, 이를 빠르게 반복합니다. 이는 각 픽셀이 동시에 처리되는 것처럼 보이지만, 실제로는 각 픽셀이 순차적으로 처리됩니다. 반면에 병렬성의 경우, 여러 코어를 가진 CPU나 GPU는 이미지의 여러 픽셀을 동시에 처리할 수 있습니다. 각 코어는 다른 픽셀을 독립적으로 처리하기 때문에, 실제로 여러 작업이 동시에 수행됩니다.

동시성, 병렬성 내용 자체가 사실 정말 어려운 개념입니다 ㅎㅎ
강의 내용을 반복해 보시면서, 컴퓨터 공학, 운영체제 쪽으로 깊게 공부하고 싶으시면,
쉽게 배우는 운영체제 - YES24 이 책을 빌려서 가볍게 읽어 보시는 것을 추천드립니다. (단순하게 그냥 추천 드리는게 아니라, 저도 직접 읽어봤습니다 ㅎㅎ)

추가적으로 궁금하신 내용 있으시면 질문해주세요!