목록분류 전체보기 (98)
미래학자
이 문제는 누워서 읽는 알고리즘의 내용을 발췌한 것입니다. 생각해볼만한 재미있는 문제라 생각하여 소개하게 됐습니다. 문제 [ 옛날에 어느 나라에 승려들만 모여 사는 섬이 있다. 그들 중 어느 사람은 눈이 빨갛고 어느 사람은 눈이 갈색이다. 눈이 빨간 사람은 마법에 걸려 있기 때문에 스스로 눈이 빨갛다는 사실을 깨닫게 되면 그날 밤 12시에 스스로 목숨을 끊어야만 한다.(이것은 마법이기 때문에 눈이 빨갛다는 사실을 깨달은 사람은 예외없이 목숨을 끊는다.) 승려들은 서로의 눈 색깔에 대해 전혀 언급하지 않는다는 불문율이 있었기 때문에 상대방의 눈 색깔을 알지만 알려주지 않기때 빨간 눈의 사람들도 함께 살아갈 수 있었다. 그러던 어느날 관광객 한명이 찾아와서 그들의 규칙을 알지 못하기에 절대 하지 말아야 할 ..
JVM 내부 구조를 파헤쳐보자. 우선 그림을 통해 전체 구조를 살펴보자. 클래스 파일 : 개발자가 자바 소스를 프로그래밍하면 확장자가 '.java' 이며 자바 컴파일러에서 컴파일 과정을 거치면 '.class'파일이 생성된다. 이 클래스 파일을 JVM에서 실행 가능하다. 이 클래스 파일들이 서로 유기적으로 동작하면서 하나의 프로그램이 수행하게 된다.클래스 로더 서브 시스템 : 자바 클래스 파일들은 OS에서 직접 동작하는 것이 아니라 JVM 위에서 동작한다. JVM은 실행할 클래스 파일을 읽고, JVM 메모리에 올려놓는 과정이 필요한데 이 과정을 클래스 로딩이라고 한다.JVM에서 실행할 클래스 파일의 내부 구조를 분석한다. 어떤 메소드가 있는지, 어떤 변수가 선언되어 있는지 그리고 각각의 성격은 어떤지 모두..
4.1 다중 쓰레드 기법을 사용했을 때 단일 쓰레드 기법을 사용했을 때보다 성능이 좋지 않은 프로그래밍 사례 2가지를 제시하시오. 첫 째, CPU 연산만 있는 경우둘 째, 4.2 단일 처리기 시스템에서의 프로그래밍을 고려하자. 다중 커널 쓰레드를 사용하여 다중 쓰레드 프로그램을 만들었을 때 이 프로그램의 성능이 단일 쓰레드만 사용하는 프로그램에 비해 더 나은 성능을 보이는 경우가 언제인가? 대화형 프로그램 일 때 응답성이 더 좋은 프로그램을 만들 수 있다. 4.3 다음 중 다중 쓰레드 프로세스의 쓰레드 사이에 공유되는 프로그램 상태는 무엇인가? a. 레지스터 값들b. 힙 메모리c. 전역 변수들d. 스택 메모리 쓰레드 사이 공유되는 값은 전역 변수, 힙 메모리레지스터 값과 스택은 쓰레드 개별로 가지는 값 ..
3.1 단기, 중기, 장기 스케줄링의 차이점을 설명하시오. 장기 스케줄러 : 디스크 메모리 사이의 스케줄링을 담당. 디스크(작업큐), 메모리(준비완료큐) 작업 스케줄링, 호출 빈도가 적기 때문에 장기 스케줄링이라고 함단기 스케줄러 : 메모리 CPU 사이의 스케줄링을 담당. 프로세스에 CPU가 할당되어 실행. 자주 호출됨.CPU 스케줄링.중기 스케줄러 : 다중 프로그래밍 정도가 심해서 메모리에 공간이 부족할 때, 우선순위가 낮은 프로세스가 디스크로 스왑 아웃. 나중에 다시 메모리로 스왑 인 3.2 프로세스들 사이에 문맥을 교환할 때 커널이 수행하는 작업을 설명하시오. 인터럽트를 통해 문맥 교환이 일어나면 커널은 현재 실행하던 프로세스의 CPU레지스터의 값, 메모리 관리 정보등을 PCB에 저장하고 프로세스 ..
공룡 책으로 유명한 Operating System Concepts 7th 연습문제 풀이 입니다. 개인적인 목적을 위해 작성했으며 작성한 해답에 오류가 있을 가능성이다분히 있습니다. 댓글로 의견을 주시면 고치도록 하겠습니다. 2.1 운영체제가 제공하는 서비스와 기능은 크게 두 범주로 나눌 수 있다. 두 범주를 간략히 설명하고 서로 어떻게 다른지 논의하라.사용자 측면 / 시스템 측면사용자 측면사용자 인터페이스사용자별 디렉토리 관리 / 권한 관리 (보호)시스템 측면프로그램 수행입/출력 연산파일 시스템 조작통신오류 탐지보안다수 사용자들 간에 컴퓨터 자원을 효율적으로 사용하기 위한 기능 제공자원 할당회계보호 2.2 운영체제에게 매개변수를 전달하는 일반적인 방법 3가지를 설명하라. 레지스터 : 레지스터에 직접 매개..
공룡 책으로 유명한 Operating System Concepts 7th 연습문제 풀이 입니다. 개인적인 목적을 위해 작성했으며 작성한 해답에 오류가 있을 가능성이다분히 있습니다. 댓글로 의견을 주시면 고치도록 하겠습니다. 1.1 다중 프로그래밍과 시분할 환경에서, 다수의 사용자가 동시에 시스템을 공유한다. 이러한 상황은 여러 가지 보안 문제를 일으킬 수 있다. a. 그러한 문제점 두 가지는 무엇인가? -> 다른 프로세스의 자원에 접근할 수 있다. 다른 프로세스가 컴퓨터 자원을 사용 못하도록 독점할 수 있다.(웜 바이러스) b. 우리가 전용 컴퓨터에서 갖는 동일한 수준의 보안을 시분할 시스템에서도 보장할 수 있는가? 당신의 대답을 설명하라. -> 동일한 수준으로 보장할 수 없다. 그 이유는 첫 째로 다수..
1. UDP 헤더 구조를 그리고, 각 필드의 의미를 설명하시오. 2. UDP에서의 데이터 분실 오류를 설명하시오. 데이터의 순서를 알수 없기 때문에, 특정 패킷을 못 받아도 해당 계층에서는 알 수 없다. 상위 계층에서 구현 가능 3. UDP에서 데이터 도착 순서 변경 오류를 설명하시오. UDP의 각 패킷은 동일한 라우팅 경로를 이용하지 않기 때문에 UDP의 패킷은 순서가 보장되지 않음. 4. RTP의 필요성을 실시간 요구 조건과 관련하여 설명하시오. 정해진 시간 내에 도착하는지의 여부가 중요. 시간 엄수 > 신뢰성. 5. 지터 분포를 설명하시오 송신측은 패킷을 일정한 속도로 송신하지만, 수신측에서는 일정하지 않고 지연차가 발생한다. 각 패킷에 대한 지연차를 지터라 하고지터의 분포가 작을수록 통신이 안정적..
1. 전송 계층 프로토콜의 기능을 설명하시오. 신뢰적인 데이터 전송, 오류 제어, 흐름 제어, 혼잡 제어, 순서, 연결형 데이터 전송 2. 전송 계층 프로토콜을 설계할 때 고려할 사항을 설명하시오. 주소 표현 (호스트 IP + 포트 번호), 가상회선(n) : 포트 (1), 또는 가상회선(1) : 포트(n), 연결 설정 3. 3 Way Handshaking을 설명하시오. 클라이언트가 SYN 세그먼트를 보냄. 서버는 SYN 세그먼트를 인식하고 클라이언트에게 ACK, SYN를 보냄. 클라이언트는 ACK와 SYN를 받고 ACK를 보냄. 4. 연결 해제 절차에서 일방적 연결 해제와 점진적 연결 해제의 차이점을 설명하시오. 일방적 연결 해제는 한쪽에 의해 연결이 해제됨(진행 중인 데이터는 날림). 점진적 연결 해제..
1. 네트워크 계층의 기능을 설명하시오. 패킷을 목적지까지 전달 할 경로를 선택 (라우터), IP 프로토콜, 혼잡 제어 (혼잡한 경로를 선택하지 않도록), 패킷의 분할과 조립 2. 라우팅 프로토콜에서 지원하는 HELLO 패킷과 ECHO 패킷의 역할을 설명하시오. HELLO : 주변 라우터에 HELLO 패킷을 보내어 주변 경로 정보를 파악하는 용도ECHO : 라우터 사이의 전송 지연 시간을 측정하는 용도 3. 혼잡 제어와 흐름 제어의 차이를 설명하시오.흐름 제어 : 송신 측과 수신측이 관여. 데이터의 손실을 방지하기 위해 송신자는 수신자가 처리할 수 있는 양(Window Size)으로 전송혼잡 제어 : 전송 경로 내에서의 문제. 특정 노드에서 어떤 문제로 인해 전달이 제대로 이뤄지지 않음. 해당 경로를 피..
1. 데이터 링크 계층 프로토콜에서 주소 개념이 필요한 이유를 설명하시오. 네트워크에 물리적으로 연결된 호스트는 물리적 주소(MAC 주소)를 이용하여 식별할 수 있다. 2. 데이터 링크 계층에서 사용하는 프레임의 종류를 나열하고, 각각의 역할을 설명하시오. 정보 프레임 : 상위 계층에서 생성된 데이터를 전송하는 용도 (순서 번호, 송수신 호스트 정보)긍정 응답 프레임 : 송신 호스트에게 프레임이 올바르게 수신됨을 확인 (ACK)부정 응답 프레임 : 송신 호스트에게 오류 및 분실을 알림 (NAK) 3. 물리적 오류가 발생하지 않는 전송 매체를 이용해 단방향 전송을 지원하는 프로토콜을 작성하시오. 단, 수신 호스트의 버퍼 개수는 무한하다. ??? 4. NAK 프레임의 역할을 NAK가 있는 경우와 없는 경우를..