목록전체 글 (37)
버티의 블로그
Thread는 CPU 실행의 기본 단위로, 동일 프로세스 내에서 여러 스레드가 동시에 실행되며 멀티 태스킹을 가능하게 한다. 보통 스레드는 스레드 ID, PC, 레지스터, 스택으로 구성된다. 멀티 스레드 환경은 한 프로세스 내 여러 스레드들이 존재하는 것으로, 이들은 code, data, files(text)를 공유하지만 registers, stack, PC는 각각 다르다. 메모리를 적게 차지하고, CPU 시간을 최소화(light weight) 하기 위해 멀티 스레드를 사용한다. 이렇게 함으로써 얻는 이득은 다음과 같다. Responsiveness : 한 스레드에 문제가 생겨도 프로그램 실행을 허락함으로써 사용자에 대한 응답성이 증가한다. Resource Sharing : 프로세스의 Shared memo..
Multiprocess Architecture Google Chrome의 Multiprocess에는 세 가지 종류의 프로세스가 존재한다. Browser 프로세스 : 유저 인터페이스, 디스크, 네트워크 I/O만 전담하는 프로세스이다. Renderer 프로세스 : 열려진 웹 사이트마다 존재하는 프로세스로 Browser가 받아온 HTML, JS의 처리를 담당한다. Plug-in 프로세스 : 특정 종류의 플러그인 실행을 전담하는 프로세스이다. 프로세스는 기본적으로 서로 무관한 상태이다. 즉 서로 영향을 주거나 받지 않고, 심지어 부모-자식 관계의 프로세스도 서로 영향을 줄 수가 없다. 그러나 위의 Multiprocess 내 프로세스들처럼 서로 영향을 주고 받는 특수한 프로세스가 존재하는데, 이들을 Coopera..
Solution of High PAPR SC-FDMA은 DFT-S(spread)-OFDM를 기반으로 한 기술로, single carrier의 Low PAPR 장점과 OFDMA의 높은 throughput(multipath 저항 + 동적할당) 장점을 합친 하이브리드 방식이다.Modulator에서 Size-N-IFFT 이전에 Size-M-DFT를 진행 (M Demodulator에서 Size-N-FFT 이후에 Size-M-IDFT를 진행 (M LTE에서의 Downlink에서는 CP-OFDMA, Uplink에서는 SC-FDMA 사용5G에서의 Downlink에서는 CP-OFDMA, Uplink에서는 CP-OFDMA 주축 + 일부 경우에만 DFT-S-OFDM 사용그럼 DFT-Spread-OFDM은 무엇일까?기존의 O..
강화학습(Reinforcement Learning)은 agent가 environment와 상호작용하면서 학습하는 과정을 뜻한다.이 과정에서 agent는 어떤 state에서 어떤 action을 해야 최대의 reward를 갖는지를 학습한다.강화학습의 목표는 특정 환경 내에서 주어진 목표를 달성하기 위한 최적의 policy를 학습하는 것이다.Agent : 학습하는 주체, 어떤 action을 취할지 결정한다.Environment : agent를 제외한 모든 것으로, agent의 action에 맞게 state와 reward를 제공한다.State : environment의 현재 상황을 나타내는 정보, agent가 action을 결정하는데 사용한다.Action : agent가 취할 수 있는 모든 행동, action에..
Process : 실행중인 프로그램을 가리키는 말, 반드시 순차적인 방식으로 진행된다. 하나의 프로그램은 여러 프로세스가 될 수도 있다. 위 그림의 stored-program concept를 따른다. Stack : 임시 데이터(지역변수, 파라메터, return주소)등을 저장 Heap : 동적으로 할당된 메모리를 저장 Data : 전역 변수와 static 변수를 저장 Text : Binary 형태로 프로그램 코드를 저장 CPU : 여러 레지스터로 구성되어 있으며, 명령어 처리를 담당한다. 모두 binary 데이터로 구성되어 있다. Program Counter : 다음 실행될 명령어의 주소를 저장 Instruction Register : 현재 실행중인 명령어의 주소를 저장 Process State New :..
OS Services and Interfaces 운영체제는 사용자에게 다양한 서비스를 아래와 같이 제공한다. 사용자 인터페이스 : Command Line (CLI), Graphics User Interface (GUI), 터치 스크린 등 CLI : 명령 인터프리터(Command Interperter)중 하나로, 사용자가 직접 명령을 입력할 수 있는 인터페이스 → 커널이나 시스템 프로그램에 의해 구현된다. 쉘 : CLI의 한 종류로, 사용자가 OS 서비스에 접근하기 위한 인터페이스 → 명령어를 받아 해석한 뒤 OS에 커널을 실행한다. GUI : 마우스, 키보드, 모니터 등과 상호작용 가능한 그래픽 요소를 제공하는 사용자 인터페이스 프로그램 실행 : 프로그램을 메모리에 로드하고 실행 I/O 작업 : 실행 중..