본문 바로가기
[Effective Java] 스레드 스케쥴러에 의존하지 말자 [Effective Java] 스레드 스케쥴러에 의존하지 말자 - 많은 스레드가 runnable 상태일 때는 어떤 스레드를 실행시킬 것인지, 그리고 얼마 동안 실행시킬 것인지를 스레드 스케쥴러가 결정한다. 운영체제에서는 공정하게 그런 결정을 내리려고 하겠지만, 그 정책은 서로 다를 수 있다. 따라서 잘 작성한 프로그램은 그런 정책의 상세한 내용에 매달려서는 안 된다. 정확성이나 성능을 스레드 스케줄러에 의존하는 프로그램이라면 그 어떤 것도 이식성이 없어질 가능성이 크다. - 강력하고, 응답성이 좋고, 이식성이 있는 프로그램을 작성하는 가장 좋은 방법은, runnable 상태의 평균 스레드 개수가 프로세서의 개수보다 그리 크지 않게 하는 것이다. 이렇게 하면 스레드 스케줄러는 선택의 여지 없이 runnab.. 2017. 3. 17.
[Effective Java] 지나친 동기화는 피하자 [Effective Java] 지나친 동기화는 피하자 - 지나친 동기화는 성능을 저하시키고 교착상태(dead lock)을 유발시키며, 심지어 예기치 않은 행동을 초래할 수 있다. - 동기화된 메소드나 블록 안에서 절대로 클라이언트에게 제어권을 넘기면 안 된다. 즉, 동기화된 영역 내부에서는 오버라이딩된 메소드를 호출하지 않아야 하며, 함수 객체의 형태로 클라이언트가 제공하는 메소드도 호출하지 말아야 한다. 동기화된 영역을 갖는 클래스의 관점에서 그런 메소드들은 매우 이질적인 녀석들이다. 그 메소드가 무슨 일을 하는지 알지 못하며, 이질적인 일을 하는 것을 제어하지도 못한다. 외계인 메소드가 하는 일에 따라 다르겠지만, 동기화된 영역에서 그 메소드를 호출하면 예외나 dead lock 또는 데이터 손상까지 .. 2017. 3. 9.
[Network] OSI 7 Layers - Layer 5, 6, 7 Session, Presentation, Application [Network] OSI 7 Layers - Layer 5, 6, 7 Session, Presentation, Application 출처, 참조 : http://luuzun.blog.me/50189217223http://defoenet.com/ccna/ Layer 5. 세션 계층 : 인증 관련 세션 연결, 관리, 제어 시스템 간의 통신 중 세션 유지 및 데이터 교환을 관리한다. 프로토콜 : NetBIOS, TLS Layer 6. 표현 계층 : 데이터 형식의 정의, 압축, 암호화 데이터 구조를 하나의 통일된 형식으로 표현.데이터의 압축과 암호화 기능 수행. 프로토콜 : ASCII, JPEG, MPEG Layer 7. 응용 프로그램 계층 : 컴퓨터의 응용프로그램 메일 클라이언트, 브라우저, FTP 클리이언트.. 2014. 4. 21.
[linux] inetd 데몬이란? linux, inetd 데몬이란? inetd 데몬이란? internet service daemon 의 약자,xinetd 는 extended inetd 의 약자. 다른 데몬들을 제어, 연결하는 역할을 하는 데몬이다.예를 들어 누군가가 telnet 에 연결하려 하면,바로 연결되는 것이 아니라,/etc/xinetd.d/telnet 에 정의된 telnet 서비스 데몬과 연결되어인증 등의 과정을 거친 후 실제 telnet 과 연결이 된다. telnet 뿐만 아니라, ftp, finger, login, shell 등도 슈퍼데몬에 의해 제어된다. 데몬의 실행모드 두가지 standalone 과 xinetd 환경 standalone 은 독립적으로 실행되는 녀석으로항상 메모리에 상주하여 서비스 요청이 있을때 언제든 바로 .. 2014. 2. 14.
반응형