etc 55

[3일차] Greedy&Brute-Force

오늘은 뭔가 제목과 강의가 딱 맞는 느낌은 아니었다. 이전 강의들에 비해서 강의 영상의 러닝타임이 꽤 길었지만 딱히 맛있다는 느낌을 받지는 못 했다. 그 와중에 버퍼링이 하도 걸려서 아주 괴로운 시간이었다. 그나마 이전에 배웠던 정수형 변수를 부분 집합으로 보는 방법을 사용해서 조합을 표현하는 부분이 재밌었다. 정수형 변수의 비트 중의 1의 개수를 세면 내가 원하는 크기의 부분 집합을 구할 수 있다. 물론 매번 1을 세어야 하는 오버헤드가 존재하긴 하지만 이런 방법이 효율적인 경우도 있을 것 같다. 매번 재귀 함수로만 조합을 표현했었는데, 이렇게 만드는 방법도 있구나 싶었다. 그리고 한 3주쯤 전에 TSP 문제를 백준에서 풀었었는데 이제서야 그 문제에 대한 이해도가 좀 높아진 것 같다. 사실 그때 비트를..

[2일차] Linked List

오늘 내용은 Linked List였다. 어제 비트 연산에 배울 때도 당연히 다 아는 내용이라고 무시하기에는 뭔가 확 와닿는 게 있었는데 오늘도 그런 포인트가 좀 있었다. 알고리즘 문제 푸는 테크닉을 몇개 배웠다. 가장 인상 깊었던 것은 링크드 리스트의 노드를 할당할 때 사용하는 메모리 풀이었다. 메모리 풀은 알고리즘 시간에 배워서 알고 있었지만 그때는 메모리 풀을 모두 사용하면 동적 할당하고 해제는 free 함수를 호출하는 것이 아니라 그 주소 공간을 메모리 풀에 돌려주는 식으로 구현했었다. 따라서 최악의 경우엔 매번 malloc을 호출해야 했다. 하지만 오늘 배운 방법은 아예 모든 공간을 정적으로 잡아두고 할당하는 방식이었다. 리스트 노드 구조체를 저런 식으로 사용하는 방법도 있구나 싶었다. 리스트 순..

Samsung SmartSSD

Samsung SmartSSD는 내 첫 발표 주제였다. 덜덜 떨면서 발표함... Samsung SmartSSD에 대해서 간단히 설명하면 Samsung과 Xilinx가 공동으로 출시한 CSD다. CSD는 Computing Storage Drive의 약자로 저장장치 주제에 내부에서 응용을 실행할 수 있는 기똥찬 친구다. 따라서 호스트의 자원 사용도 줄이고 호스트와 디바이스간의 데이터 전송도 줄어들게 된다. SmartSSD는 내부에 FPGA 가속기를 내장하는 방식으로 개발됐다. 다른 CSD로는 NGD system이라는 것도 있는데 이 친구는 아예 Linux가 안에서 돌아간다고 한다. SmartSSD는 크게 SSD, FPGA 가속기, PCIe 스위치로 구성되어있다. SSD는 일반적인 저장장치랑 똑같은 역할을 수..

연구실 인턴 시작

올해 1월부터 6월까지 학부 연구실 인턴을 하게 됐다. 동기 1명이랑 같이 학과 홈페이지에서 보고 신청했다. 저번 학기에 들었던 운영체제 과목을 맡았던 교수님 연구실로 들어갔다. http://discos.sogang.ac.kr/team DISCOS - Distributed Computing and Operating Systems Laboratory discos.sogang.ac.kr 연구 내용은 면담할 때 들려주셨는데 내용은 SSD랑 관련 있어 보였다. 같이 신청한 친구랑 같은 주제긴 한데 연구 내용은 조금 달랐다. 그때는 내가 무엇을 하게 될지 자세히 몰랐는데 이후에 첫 모임을 갖고 나서 좀 명확해졌다. 저번 금요일에 처음 모임이 있었다. 그때 내 대학 생활 처음으로 발표다운 발표를 해본 것 같다. 발..