network 드라이버 관련 질문 입니다.
글쓴이: mabux / 작성시간: 목, 2005/02/17 - 9:24오후
dev_load(ifr.ifr_name); read_lock(&dev_base_lock); ret = dev_ifsioc(&ifr, cmd); read_unlock(&dev_base_lock);
위에서 read_lock 후 read_unlock 하는 이유는 무엇인지요?
무슨 동작을 하기 전에 read_lock 을 호출 후 원하는 동작을 하고 난뒤에 read_unlock 을 하는 이유가 먼지 궁금합니다.
또한
dev_load(ifr.ifr_name); dev_probe_lock(); rtnl_lock(); ret = dev_ifsioc(&ifr, cmd); rtnl_unlock(); dev_probe_unlock();
위의 코드에서도 마찬가지로 dev_probe를 lock한뒤에
다시 unlock 을 호출 하는 이유가 무엇인가요?
답변 부탁드리겠습니다.
Forums:
일반적으로 lock을 한다는 건 스케쥴링 일어 나는 것을 막겠다는 얘기입
일반적으로 lock을 한다는 건 스케쥴링 일어 나는 것을 막겠다는 얘기입니다.
read_lock도 spin_lock의 한 일환으로 역할은 비슷한것으로 알 고 있습니다.
lock하고 나서 unlock으로 lock을 풀지 않는다면 스케쥴링이 일어 나지 않아서 최악의 상황 시스템이 멈출 수도 잇겠지요..
댓글 달기