ログイン

멀코 4장 동기화 연산과 cas

멀코 4장 동기화 연산과 cas
20問 • 2年前
  • ユーザ名非公開
  • 通報

    問題一覧

  • 1

    실제 메모리로 wait-free를 유지하면서 atomic memory를 만들 수 있는 알고리즘이 존재하는가? ( O / X )

    O

  • 2

    기존의 싱글스레드 자료구조도 wait-free를 유지하면서 atomic memory를 사용해서 멀티스레드 자료구조로 변환하는 것이 가능한가? ( O / X )

    X

  • 3

    일반적인 자료구조를 wait-free를 유지하면서 멀티스레드 자료구조로 변환하려면 atomic memory말고 무엇이 더 필요한가?

    CompareAndSet() 연산이면 충분하다. CAS

  • 4

    스레드끼리의 동기화는 ( )을 통해서 이루어 진다.

    동기화 연산

  • 5

    동기화 연산은 ( )로 구현되어 있어야 한다.

    wait-free

  • 6

    bool 메모리::CAS(expected, update)는 어떻게 동작하는가?

    메모리의 값이 expected와 같으면 update로 값을 바꾸고 true 반환. 메모리의 값이 expected와 다르면 false 반환.

  • 7

    소프트웨어적으로 cas를 구현할 방법이 있는가? ( O / X )

    X

  • 8

    CAS는 atomic load/store로 구현이 가능한가? ( O / X )

    X

  • 9

    모든 기존 자료구조를 wait-free multithread로 변환해 주는 알고리즘은 존재하지 않는다. ( O / X )

    X

  • 10

    이것은 무슨 코드인가?

    모든 기존 자료구조를 Lock-free multithread로 변환해주는 알고리즘

  • 11

    지워진 곳에 위에서부터 알맞은 코드를 넣으시오.

    r.CAS(FIRST, i) decide(&prefer) SeqObject myObject;

  • 12

    이 알고리즘을 사용하지 못하는 이유는?

    오버헤드가 너무 커서 성능이 너무 안좋다.

  • 13

    CPU가 제공하는 CAS를 사용하면 모든 싱글스레드 알고리즘을 lock-free한 멀티스레드 알고리즘으로 변환할 수 있다. ( O / X )

    O

  • 14

    멀티스레드 알고리즘은 범용적일 수록 성능이 떨어진다. ( O / X )

    O

  • 15

    Data Race는 ( ) 떄문에 발생한다.

    공유 객체

  • 16

    빈칸에 들어갈 것은?

    atomic_int

  • 17

    빈칸에 들어갈 것은?

    volatile atomic_int *

  • 18

    한 줄인데 왜 함수를 만들어서 사용하는가?

    call by reference로 사용하기 위해서이다. 밖에 CAS 함수는 실패한 것만 알고 안에 있는 atomic_compare_exchange_strong은 왜 실패했는지도 알 수 있다.

  • 19

    여기서 CAS_LOCK()과 CAS_UNLOCK()에 들어갈 것은?

    CAS_LOCK(): while (false == CAS(&LOCK, 0, 1)); CAS_UNLOCK(): LOCK = 0;

  • 20

    convoying이 의심되면 ( )를 사용하면 된다.

    yield()

  • 멀코 2장 멀티스레드 프로그래밍

    멀코 2장 멀티스레드 프로그래밍

    ユーザ名非公開 · 9問 · 2年前

    멀코 2장 멀티스레드 프로그래밍

    멀코 2장 멀티스레드 프로그래밍

    9問 • 2年前
    ユーザ名非公開

    멀코 3장 메모리 일관성

    멀코 3장 메모리 일관성

    ユーザ名非公開 · 41問 · 2年前

    멀코 3장 메모리 일관성

    멀코 3장 메모리 일관성

    41問 • 2年前
    ユーザ名非公開

    고법 2장 헌법

    고법 2장 헌법

    ユーザ名非公開 · 41問 · 2年前

    고법 2장 헌법

    고법 2장 헌법

    41問 • 2年前
    ユーザ名非公開

    고법 3장 근로계약

    고법 3장 근로계약

    ユーザ名非公開 · 42問 · 2年前

    고법 3장 근로계약

    고법 3장 근로계약

    42問 • 2年前
    ユーザ名非公開

    고법 4장 노동법의 역사

    고법 4장 노동법의 역사

    ユーザ名非公開 · 23問 · 2年前

    고법 4장 노동법의 역사

    고법 4장 노동법의 역사

    23問 • 2年前
    ユーザ名非公開

    고법 6장 직장내 성희롱

    고법 6장 직장내 성희롱

    ユーザ名非公開 · 31問 · 2年前

    고법 6장 직장내 성희롱

    고법 6장 직장내 성희롱

    31問 • 2年前
    ユーザ名非公開

    멀코 5장 non-blocking 알고리즘 - list

    멀코 5장 non-blocking 알고리즘 - list

    ユーザ名非公開 · 84問 · 2年前

    멀코 5장 non-blocking 알고리즘 - list

    멀코 5장 non-blocking 알고리즘 - list

    84問 • 2年前
    ユーザ名非公開

    멀코 5-2장 배경이론

    멀코 5-2장 배경이론

    ユーザ名非公開 · 61問 · 2年前

    멀코 5-2장 배경이론

    멀코 5-2장 배경이론

    61問 • 2年前
    ユーザ名非公開

    1. 컴퓨터 그래픽스 개요 (컴그)

    1. 컴퓨터 그래픽스 개요 (컴그)

    ユーザ名非公開 · 34問 · 2年前

    1. 컴퓨터 그래픽스 개요 (컴그)

    1. 컴퓨터 그래픽스 개요 (컴그)

    34問 • 2年前
    ユーザ名非公開

    2. 2차원 그래픽스의 기본 요소 (컴그)

    2. 2차원 그래픽스의 기본 요소 (컴그)

    ユーザ名非公開 · 30問 · 2年前

    2. 2차원 그래픽스의 기본 요소 (컴그)

    2. 2차원 그래픽스의 기본 요소 (컴그)

    30問 • 2年前
    ユーザ名非公開

    3. 2차원 그래픽스 변환 (컴그)

    3. 2차원 그래픽스 변환 (컴그)

    ユーザ名非公開 · 15問 · 2年前

    3. 2차원 그래픽스 변환 (컴그)

    3. 2차원 그래픽스 변환 (컴그)

    15問 • 2年前
    ユーザ名非公開

    4. 2차원 그래픽스의 윈도우와 뷰포트 (컴그)

    4. 2차원 그래픽스의 윈도우와 뷰포트 (컴그)

    ユーザ名非公開 · 16問 · 2年前

    4. 2차원 그래픽스의 윈도우와 뷰포트 (컴그)

    4. 2차원 그래픽스의 윈도우와 뷰포트 (컴그)

    16問 • 2年前
    ユーザ名非公開

    멀코 6장. 병렬 알고리즘 - QUEUE

    멀코 6장. 병렬 알고리즘 - QUEUE

    ユーザ名非公開 · 26問 · 2年前

    멀코 6장. 병렬 알고리즘 - QUEUE

    멀코 6장. 병렬 알고리즘 - QUEUE

    26問 • 2年前
    ユーザ名非公開

    멀코 7장. STACK, SKIP-LIST

    멀코 7장. STACK, SKIP-LIST

    ユーザ名非公開 · 42問 · 2年前

    멀코 7장. STACK, SKIP-LIST

    멀코 7장. STACK, SKIP-LIST

    42問 • 2年前
    ユーザ名非公開

    멀코 8장. 병렬 라이브러리

    멀코 8장. 병렬 라이브러리

    ユーザ名非公開 · 77問 · 2年前

    멀코 8장. 병렬 라이브러리

    멀코 8장. 병렬 라이브러리

    77問 • 2年前
    ユーザ名非公開

    고법 7장. 임금의 이해

    고법 7장. 임금의 이해

    ユーザ名非公開 · 46問 · 2年前

    고법 7장. 임금의 이해

    고법 7장. 임금의 이해

    46問 • 2年前
    ユーザ名非公開

    고법 9장. 인사명령과 징계

    고법 9장. 인사명령과 징계

    ユーザ名非公開 · 21問 · 2年前

    고법 9장. 인사명령과 징계

    고법 9장. 인사명령과 징계

    21問 • 2年前
    ユーザ名非公開

    고법 11장. 노동조합법

    고법 11장. 노동조합법

    ユーザ名非公開 · 45問 · 2年前

    고법 11장. 노동조합법

    고법 11장. 노동조합법

    45問 • 2年前
    ユーザ名非公開

    컴그 7장. 3차원 객체의 모델링

    컴그 7장. 3차원 객체의 모델링

    ユーザ名非公開 · 13問 · 2年前

    컴그 7장. 3차원 객체의 모델링

    컴그 7장. 3차원 객체의 모델링

    13問 • 2年前
    ユーザ名非公開

    컴그 8장. 은면의 제거

    컴그 8장. 은면의 제거

    ユーザ名非公開 · 9問 · 2年前

    컴그 8장. 은면의 제거

    컴그 8장. 은면의 제거

    9問 • 2年前
    ユーザ名非公開

    問題一覧

  • 1

    실제 메모리로 wait-free를 유지하면서 atomic memory를 만들 수 있는 알고리즘이 존재하는가? ( O / X )

    O

  • 2

    기존의 싱글스레드 자료구조도 wait-free를 유지하면서 atomic memory를 사용해서 멀티스레드 자료구조로 변환하는 것이 가능한가? ( O / X )

    X

  • 3

    일반적인 자료구조를 wait-free를 유지하면서 멀티스레드 자료구조로 변환하려면 atomic memory말고 무엇이 더 필요한가?

    CompareAndSet() 연산이면 충분하다. CAS

  • 4

    스레드끼리의 동기화는 ( )을 통해서 이루어 진다.

    동기화 연산

  • 5

    동기화 연산은 ( )로 구현되어 있어야 한다.

    wait-free

  • 6

    bool 메모리::CAS(expected, update)는 어떻게 동작하는가?

    메모리의 값이 expected와 같으면 update로 값을 바꾸고 true 반환. 메모리의 값이 expected와 다르면 false 반환.

  • 7

    소프트웨어적으로 cas를 구현할 방법이 있는가? ( O / X )

    X

  • 8

    CAS는 atomic load/store로 구현이 가능한가? ( O / X )

    X

  • 9

    모든 기존 자료구조를 wait-free multithread로 변환해 주는 알고리즘은 존재하지 않는다. ( O / X )

    X

  • 10

    이것은 무슨 코드인가?

    모든 기존 자료구조를 Lock-free multithread로 변환해주는 알고리즘

  • 11

    지워진 곳에 위에서부터 알맞은 코드를 넣으시오.

    r.CAS(FIRST, i) decide(&prefer) SeqObject myObject;

  • 12

    이 알고리즘을 사용하지 못하는 이유는?

    오버헤드가 너무 커서 성능이 너무 안좋다.

  • 13

    CPU가 제공하는 CAS를 사용하면 모든 싱글스레드 알고리즘을 lock-free한 멀티스레드 알고리즘으로 변환할 수 있다. ( O / X )

    O

  • 14

    멀티스레드 알고리즘은 범용적일 수록 성능이 떨어진다. ( O / X )

    O

  • 15

    Data Race는 ( ) 떄문에 발생한다.

    공유 객체

  • 16

    빈칸에 들어갈 것은?

    atomic_int

  • 17

    빈칸에 들어갈 것은?

    volatile atomic_int *

  • 18

    한 줄인데 왜 함수를 만들어서 사용하는가?

    call by reference로 사용하기 위해서이다. 밖에 CAS 함수는 실패한 것만 알고 안에 있는 atomic_compare_exchange_strong은 왜 실패했는지도 알 수 있다.

  • 19

    여기서 CAS_LOCK()과 CAS_UNLOCK()에 들어갈 것은?

    CAS_LOCK(): while (false == CAS(&LOCK, 0, 1)); CAS_UNLOCK(): LOCK = 0;

  • 20

    convoying이 의심되면 ( )를 사용하면 된다.

    yield()