module programming을 하고 있는데요.
제가 만든 module "minibuf"를 insmod로 올려보았는데요.
lsmod해보면
Module Size Used by
minibuf 2800 0 (unused)
autofs 11040 1 (autoclean)
...
이렇게 나오더라구요.
그런데 제 minibuf 는 open 한 상태에서도 used 란이 그대로 0 입니다.
cli(clear interrupt)와 sti(set interrupt)로 인텔 펜티엄 CPU에선 인터
럽트를 조정할 수 있잖아요...
cli하면 모든 인터럽트가 다 블록되나요?
메인보드에서 클럭 틱을 만들어서 매 틱마다 인터럽트를 거는 걸고 알고
있습니다.. 그때마다 리눅스 커널이 그 인터럽트를 감지해서 jiffies도 업
데이트 하고, 나머지 시간과 관련된 처리는 bottom half로 처리한다고 알
고 있습니다..
근데... time slice도 이 틱에 의해서 정해지는데 cli해서 인터럽트를 막
아 버린다면 time slice 체크도 못 하게 되지 않나요? 그러다 잘못해서
지금까진 쭉 윈도우 프로그래밍만 하다다 리눅스 기반 서버프로그램을
만들 일이있어서 지금 리눅스 네트웍공부를 하고있습니다.
소켓프로그램이라서 윈도우와 크게 다르진 않는데
한가지 궁금한것은 리눅스용 서버프로그램을 보면 리슨하고 있다가
하나의 소켓이 오면 fork()함수를 사용해서 자식 프로세서를 생성시키고
소켓을 거기에서 처리하는거 같은데
이것이 상당히 비효율적이지 않나 합니다.
동시 만명이 접속한다면 프로세서를 만개를 생성시켜야 한다는 예긴데