What Page Fault Handler doesStop the instruction that is trying to translate the address until we can retrieve the contentsAllocate a page in memory to hold the new page contentsLocate the page on disk using the page table entryCopy the contents of the page from diskUpdate the page table entry to indicate that the page is in memoryLoad the TLBRestart the instruction that was addressing the virtu..
개요 Github Codespaces란 Github에서 제공하는 클라우드 개발환경이다. 동작방식은 기본적으로 Docker 컨테이너 위에 Ubuntu 이미지로 생성된다. 또한 접속 방식은 브라우저, VSCode, JetBrains Gateway, Github CLI 등이 있다. 요금 정책 계정별 요금 정책 사양에 따른 요금 부과 정책 생성 방법 이미 생성되었거나 생성할 repository에서 Codespaces 카테고리를 선택한 후, Create codespace on main 버튼을 클릭한다. Codespaces 관리 Stop codespace를 통해 컨테이너를 중지시킬 수 있다. Change machine type을 통해 컨테이너의 성능을 변경시킬 수 있다. 참조 https://docs.github.c..
우선 나의 경우, mac 환경에서 docker를 이용해서 ubuntu 22.04를 띄우고, 이 위에서 개발 환경을 세팅했다. 기본적인 docker 명령어 docker images 확인 docker images -a docker image 삭제 docker rmi 'image name' 실행중인 컨테이너 확인 docker ps -a 컨테이너 실행 docker start 컨테이너ID 컨테이너 중지 docker container stop 'container ID' 컨테이너 삭제 docker container rm 'container id' 컨테이너 접속 docker exec -it 컨테이너ID /bin/bash 호스트-컨테이너 작업 폴더 복사 docker cp 컨테이너이름:컨테이너내경로 호스트내경로 그럼 먼저..
우선 우리는 AI가 생상해내는 데이터가 많아질수록, 즉, 대규모 생성 모델로 인한 향후 데이터 세트의 손상이 될 것임을 알아야 한다. 따라서 앞으로의 AI는 오히려 데이터의 진위판별에 더욱 많은 비용을 사용하게 될 것이다. 동영상 표절이 쉬워진다. 노아 AI : 유튜브 조회 수와 제목 등 관련 데이터를 모아 이용자들에게 인기가 많은 영상과 키워드를 추천해주는 프로그램이다. 즉, 표절 대상 검색에 사용될 수 있다. 클로바 AI(Naver) : 음성을 듣고 대본 추출이 가능하다. 뤼튼 : 비슷한 새로운 스크립트를 생성해준다. 이렇듯 광고 수익을 바라는 블로거나 유튜버들이 AI를 활용해서 표절을 감행하고 있다. 인터넷 생태계의 황폐화 이렇게 인공지능으로 가짜 데이터가 생성되면 될수록, 오리지널은 실종되고 인공..
ChatGPT란? Chat : 대화형 Generative : 생성하는. 그림, 동영상, 글 등 Pre-trained : 사전학습한 LLM(거대 언어 모델) 3천억개의 단어와 5조 개의 문서를 학습했다. 모든 LLM은 파운데이션 모델이다. 왜냐하면, 어느순간을 기점으로 느닷없이 나타내는 능력을 보여준다. (emergent). 따라서 사전학습하지 않은 것을 물어봐도 답할 수 있다. Transformer : 딥러닝 모델 주어진 문장들을 보고 다음 단어가 무엇일지를 확률로 예측한다. 이때 Attention Model을 사용하는데, 주어진 문장중에서 핵심 단어를 파악한다. 따라서 이 모델을 사용하면, 연산량을 높이면서도 정확성을 높일 수 있다. Transformer, Attention 모델도 구글이 오픈 소스로 ..
개요 accept() 함수의 경우 한번에 하나의 클라이언트와 연결을 맺을 수 있었다. 그렇다면 for문을 돌려 여러번의 accept() 함수를 호출할 수 있지 않을까 생각이 들 수 있다. 하지만 한 클라이언트와 연결을 설정한 후에는 해당 클라이언트가 연결을 종료할 때까지 또 다른 클라이언트와 통신할 수 없다. 이때, 사용해야 하는 것이 멀티 프로세스이며, 이에 사용되는 시스템 콜이 바로 fork()이다. fork() 시스템 콜 특정 프로세스에서 fork() 시스템 콜을 호출하면 호출한 프로세스와 똑같은 메모리 자원이 메모리에 그대로 복사된다. 이때, 복사된 프로세스를 자식 프로세스라고 하고, 복사한 프로세스를 부모 프로세스라고 한다. 즉, 부모는 자식에게 본인의 프로세스를 복사해서 전달하며, 자식은 해당..
서버에서는 socket() 함수로 소켓 디스크립털르 할당받은 후에 bind() -> listen() -> accept() 시스템 콜을 차례대로 호출해서 클라이언트와 연결을 맺을 수 있다. 반대로, 클라이언트에서는 대기중인 서버에 연결 요청을 함으로써 서버-클라이언트 간의 연결이 생성될 수 있는데, 여기에 사용되는 시스템콜이 connect() 시스템 콜이다. 클라이언트의 소켓 생성 및 주소 할당 클라이언트의 경우에도 서버와 소켓 통신을 하려면 소켓을 하나 생성해야 한다. 즉, socket() 함수를 통해서 변수 sock에 디스크립터 번호를 지정한다. 다음으로는 연결을 요청할 서버의 주소를 소켓에 할당한다. 이때, 서버와는 달리 클라이언트는 본인의 IP address와 port number를 따로 지정할 필..