본문 바로가기

분류 전체보기60

4. Physical Layer - Digital Signals 디지털 신호는 0과 1로 표현할 수 있는 실제 전기 신호이다. 물리 계층에서는 실제 전기를 통해 bit 정보를 전송하기 때문에 디지털 신호에 대해 알고 있어야 한다. Bit Rate (비트 전송률) 1초 당 비트 전송률이고 Bit Per Second로 bps라고도 한다. 물리적인 장치로 디지털 데이터를 전달할 때 디지털 신호로 전달하게 되는데 그림 A와 같이 bit rate가 몇 bit냐에 따라서 디지털 신호의 레벨을 나누게 된다. 한 줄당 80글자가 있는 문장이 총 24줄 있다고 가정하자. 이를 한 페이지라고 했을 때 총 100페이지가 있다면 이 정보를 채널을 통해 전송하는 Bit Rate는 어떻게 될까? 한 글자는 1Byte = 8bit 이므로 8 * 80 * 24 * 100 으로 1,536,000b.. 2024. 4. 24.
3. Physical Layer - Data와 Signals 그리고 Bandwidth 물리 계층에 대해 들어가기 전에 데이터와 신호에 대한 개념이 필요한가보다. 데이터 통신에서 데이터는 두 가지 종류가 있다. 1. 아날로그 데이터 - 연속적인 정보를 가지고 있는 데이터 2. 디지털 데이터 - 불연속적인 정보를 가지고 있는 데이터 아날로그 데이터와 디지털 데이터를 각 각 신호로 나타내면 그림 A처럼 표현할 수 있다. 각 신호는 주기적인 신호(Periodic)와 비주기적인 신호(Non-Periodic)로 구분할 수 있다. 주기적인 신호는 일정한 패턴이 동일한 시간 내 반복되는 것을 말하고 사이클을 형성한다고 한다. 비주기적인 신호는 시간이 지남에 따라 반복되는 패턴 없이 신호가 바뀌는 것을 말한다. 대표적으로 그림 B와 같은 정형파가 주기적인 신호에 속한다. 그 외, 그림 A와 같은 신호들은.. 2024. 4. 23.
2. Protocol Model Seven layers of the OSI Model OSI는 응용 프로그램 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층으로 7개의 레이어를 가진다. 흔히, 자격증 공부에서는 '물데네 전세표응'으로 외우는 유명한 녀석이다. OSI의 7계층을 살펴보면 프로토콜의 원칙을 잘 지키고 있음을 알 수 있다. 각 레이어는 양방향으로 통신이 되며, 같은 계층을 가지고 있다. 참고로 네트워크, 데이터 링크, 물리 계층의 경우 통신 상 존재하는 중간 라우터, 스위치 등에 의해 추가적인 통신이 발생 각 계층은 어떤 일을 하는지 보자. Physical Layer 물리 계층은 그림 A와 같이 구성되어있다. 프로토콜 원칙에서 설명했지만, 각 계층은 두가지 역할을 수행해야 한다고 했.. 2024. 4. 22.
1. Protocol Layering 프로토콜이 뭘까? 프로토콜(Protocol)은 통신에서 상대방과 통신하는 방법에 대한 규약이다. 어떻게 통신할 것인지를 미리 사전에 정의해놓고 그 방식에 맞게 통신하는 것이다. 만약, 프로토콜이 없다고 가정해보자. A 회사에서 B 회사로 데이터를 전달하는데 그냥 원본 그대로 전송한다. A 회사는 전용 우편함이 존재하고 B 회사는 우편함이 따로 없다. B 회사에서 데이터를 전달 받을 때, 우편함이 없어서 사용자에게 직접 가져다 줘야하는데 우편 기사가 존재한다면 한 명, 한 명에 대해 일일이 물어보고 갖다줘야한다. 만약, B 회사에도 우편함이 존재했고 이 우편을 관리해주는 사람이 존재한다면? 알아서 다 해줄 것이다. 컴퓨터 입장에서 본다면 컴퓨터 시스템이 사용자를 찾기 위해 다른 작업을 처리하지 못하고 시간.. 2024. 4. 22.
15. CPU Scheduling Algorithm FCFS (First Come First Served) 스케쥴링 선입선처리 알고리즘 스케줄링 파라미터 : 스레드별 도착 시간 비선점 스케쥴링 스레드 우선순위 없음 기아 없음, 스레드 오류로 무한 루프가 발생한다면 기아 발생 처리율이 낮음. 호위 효과 (convoy effcet) 발, 긴스레드가 오래 CPU를 차지하면 늦게 들어온 스레드는 오래 대기 총 처리 시간 11s, 대기시간 11s, 평균 대기시간 11 / 4 = 2.75ms SJF (Shortest Job First) 최단 작업 우선 스케줄링 스케줄링 파라미터 : 스레드 별 예상 실행 시간 비선점 스케줄링 스레드 우선순위 : 짧은 스레드 실행 시간 기아 발생가능, 지속적으로 짧은 스레드가 도착시 긴 스레드의 실행을 예측 불가 짧은 스레드가 먼저 실.. 2024. 4. 22.
14. CPU Scheduling CPU 스케줄링은 왜 생겼을까? 운영체제의 발전을 공부하면서 다중프로그래밍이 도입된 것을 알게됐다. 다중 프로그래밍은 I/O 처리로 인한 CPU Idle Time을 줄여서 CPU 활용률을 향상 시키기 위해서 도입 되었는데 이 때, 다중 처리를 하기 위한 기법이 CPU 스케줄링이다. 스레드까지 공부하면서 알게 된 내용은 CPU는 스레드를 스케줄링해야 한다는 것이다. 근데 어떤 스레드를 선택할 것인지 골라야한다. 위와 같은 정책을 가진 알고리즘을 크게 CPU 스케줄링 알고리즘이라고 하고 엄밀하게는 스레드 스케줄링이라고 한다. 다중 프로그래밍은 2가지 스케줄링을 통해 발생한다. 1. 작업 스케줄링(job scheduling) - 디스크 장치로부터 메모리에 올릴 작업을 선택하는 것이다. 프로세스가 시작하거나 종.. 2024. 4. 22.
13. 멀티스레드 구현 멀티 스레드 구현 ? 개발자로 거듭나려면 꼭 필요한 개념이다. 우리도 코드를 작성하면서 다양한 사용자에 대해 작업을 해야할 것이다. 그 때, 스레드를 사용한다면 우리가 만든 스레드가 시스템에서 스케줄 될 수 있도록 하는 방법이다. 크게 N:1 매핑, 1:1 매핑, N:M 매핑이 있다. X : Y 꼴로, X개의 사용자 레벨 스레드를 Y개의 커널 레벨 스레드로 매핑한다는 내용인데 이 외에도 1:N 매핑도 있다. 하지만 중요한 N:1, 1:1 만 작성하도록 하겠다 .N(User):1(Kernel) 매핑 말 그대로 N개의 사용자 스레드가 1개의 커널 스레드로 매핑하는 개념이다. 운영체제(커널 입장)는 모든 프로세스를 Main 스레드라는 단일 프로세스로 처리한다. 이 말은 커널 영역에 저장되는 커널 레벨 스레드의.. 2024. 4. 22.
12. 커널 레벨 스레드와 사용자 레벨 스레드 스레드의 레벨? 스레드는 스케줄링 주체에 따라 두 종류의 스레드로 구분된다. 1. 커널 레벨 스레드 (Kernal-Level Thread) : 커널에 의해 스케줄링 된다. 2. 사용자 레벨 스레드 (User-Level Thread) : 스레드 라이브러리에 의해 스케줄링 된다. TCB를 소유하고 있는 주체에 따라 두 종류의 스레드로 구분되는데 자세히 알아보도록 하겠다. 커널 레벨 스레드 커널 레벨 스레드는 시스템 호출을 통해서만 생성된다. 즉, 커널에 의해서만 스케줄링 되는 것이다. 하지만, 커널 코드와 달리 커널 레벨 스레드의 코드나 데이터가 커널 공간뿐 아니라 사용자 공간에도 있을 수 있다. 이게 무슨말인지 정말 헷갈렸다. thread_create() 뿐만 아니라 ktread_create()라는 스레드.. 2024. 4. 22.
11. 스레드 주소 공간과 컨텍스트 스레드의 주소공간은 생각보다 간단하다. 프로세스 주소공간을 그대로 나누어가지고 있다. 기존 프로세스의 코드, 데이터, 힙, 스택 영역은 공유 영역이되고 개별 스레드마다 코드 영역, 데이터 영역, 스택 영역, 커널 영역으로 나누어 사용되고 있다. ※ 프로세스와 스레드는 유사하다는 것을 알 수 있다. 스레드 생명 주기 프로세스에서 스레드로 바뀌었으니 유사한 것은 당연하다. 그럼 프로세스에서 있는 개념들은 웬만하면 스레드에도 적용된다는 것을 알 것이다. 스레드 또한 생명주기가 있다. 프로세스는 NEW, Ready, Running, Blocked, Zombie, Out 상태가 있었다. 스레드는 Ready, Running, Blocked, Terminated 상태가 있다. 각 상태에 대한 기본적이 내용은 프로세스.. 2024. 4. 22.