일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 교착상태
- Oracle
- 트랩
- 동기화
- fork()
- 인터럽트
- 컴퓨터구조
- 페이지 대치
- 스케줄링
- 기아 상태
- 페이징
- 프로세스
- 운영체제
- ALU
- 추상화
- 우선순위
- 세마포어
- 부동소수점
- mutex
- concurrency
- BOJ
- 백준
- 스레드
- 알고리즘
- 가상 메모리
- 페이지 부재율
- PYTHON
- 단편화
- Algorithm
- mips
- Today
- Total
목록전체 글 (131)
봉황대 in CS

What is CPU Pinning ?‘CPU pinning’은 특정 process 또는 thread가 지정한 CPU core에서만 실행되도록 하는 것을 말한다. CPU pinning is a stricter form of CPU affinity,where you bind a process or a thread to a specific CPU core, and prevent it from running on any other core. What is CPU Affinity ?여기서 ‘CPU affinity’란, ‘the ability to specify which CPU cores a process or a thread can run on’특정 process 또는 thread가 지정된 CPU core 집..

학교에서 들었던 OS와 DB 강의 중 synchronization과 관련해서는 ‘lock’에 대해서만 들었는데,여러 Database system 관련 논문들에서 ‘latch’라는 단어를 사용하는 것을 보게 되었다. 그때는 대충 lock과 비슷한 의미겠거니~~ 하면서 넘어갔는데 ㅎ,,이번 방학 동안 읽고 있는 '친절한 SQL 튜닝' 책의 설명에서는 latch와 lock을 완전히 구별해서 말하고 있길래 .. 이 참에 조금 더 공부해서 둘을 비교하면서 정리하고, 나의 견해를 마지막에 남겨보고자 한다. --- 둘의 공통적인 역할은 'Synchronization mechanism을 제공하여, shared resource들을 보호'하는 것이다. 또한, 정의되어 있는 정책에 따라서여러 worker들이 shared..

‘Hyper-threading’은 Multi-core system에서 CPU throughput을 높이기 위해 Intel이 2002년에 개발한 기술이다. [참고]CPU : 중앙 처리 장치= Processor : 프로그램의 instruction을 수행하기 위한 논리회로 (두 용어를 혼용해서 사용함)Core : 프로그램의 instruction을 읽고 수행하는 독립적인 처리 장치Multi-core system : 두 개 이상의 core를 가진 processor→ 따라서 컴퓨터는 동일 시간에 서로 다른 task들을 처리할 수 있게 되어 throughput이 증가할 수 있다.한 컴퓨터에는 CPU가 여러 개 존재할 수 있고, 한 CPU에는 core가 여러 개 존재할 수 있다. 위에서 말한 ‘core’는 ‘phy..

방학을 맞이하고 연구 버닝 타임으로 복귀하면서.. 학기 중에는 바빠서 미처 진행하지 못하고 Todo로만 남겨뒀던,불필요한 반복 작업들을 자동화하는 스크립트들을 새로 구현하고 기존 스크립트를 정비하였다. Throughput 실험 결과를 저장한 파일들을 읽어서, 각 실험마다 평균값을 계산해 주는 Python 스크립트 구현→ 기존 스크립트에 연결 완료, 따라서 throughput 측정 시마다 자동으로 계산하여 파일에 출력해 줌Throughput 실험 결과가 담긴 파일들을 저장하는 디렉터리 경로 지정 자동화 완료방법 : Shell script 날짜 변수 사용 $(date +"%y%m%d")Performance breakdown 시, macro를 자동으로 지정 및 해제해 주는 스크립트 구현 완료 오늘 처리한 3개..

* 본 글은 ‘친절한 SQL 튜닝’ 책과 Oracle 공식 문서들을 바탕으로 작성하였습니다. (참고한 문서의 링크는 하단에 첨부) Overview of Oracle Database Storage StructuresOracle 데이터베이스의 전체적인 저장 구조는 다음과 같다. 그림에서 여러 unit이 존재하는 것을 볼 수 있는데,이들은 physical storage structure와 logical storage structure로 구분할 수 있다. 이 글에서는 위 그림에 그려져 있는 구조들에 대해서만 설명하겠다. (문서들을 파고들수록 양이 너무 방대해져서 ..) 관계형 데이터베이스 관리 시스템(RDBMS)의 특징 중 하나는logical data structure와 physical storage str..
버전 락, (대개) 낙관적 락(Optimistic Locking)이라고 부르는 locking 개념에 대해서 정리해보고자 한다.진행하고 있는 연구 구현에서 최근에 이 친구를 추가했다 ㅎ__ㅎ Main idea어떤 데이터에 대해서 reader가 writer 보다 훨씬 많은 상황을 생각해 보자.즉, 갱신이 자주 발생하지는 않으며, 읽기 연산은 많이 발생하는 데이터라는 것이다. 여기서 비관적 락(Pessimistic Lock)처럼, 연산을 진행하기 위해서는 무조건 lock을 잡아야 한다면 매우 큰 성능 저하가 발생할 수 있다. 읽기 연산은 여러 reader가 동시에 진행할 수 있는데, 그것을 아예 막아버렸기 때문이다. 따라서 버전 락(낙관적 락)은 '우선 그냥 읽어! → 읽는 동안 쓰기가 발생했다면, 다시 읽..
현재 진행하고 있는 연구는 특정 workload에서, thread의 개수가 증가하면 performance(이 연구에서는 throughput)도 같이 좋아지는 scalable 한, 그리고 lock-free로 동작하는 스토리지 시스템을 설계하는 것이다. 따라서 multi-threaded 환경에서 발생하는 concurrency issue들을 '매우 잘' 해결해야 한다. 이 '매우 잘'에는 수많은 내용이 함축되어 있는데.. n달 동안 내가 설계한 것을 구현하고, 디버깅하고, 디버깅 완료하면 또 다른 문제를 마주하고, 디자인 변경하고, 더 큰 문제를 마주해서 다시 이전 버전으로 되돌아가고, 다시 디버깅하고, ... 이러한 작업을 계속 진행하고 있다. 문제는, 어떠한 이슈를 마주하고 디버깅을 진행할 때마다 매번 ..

이번 학기에 '협동 분산 시스템' 과목을 수강하는데, 'Design Issues of Clients and Servers'라는 주제가 있었다.client와 server 각각 사용 편의성을 제공하기 위해서, 그리고 사용자에게 더욱 빠른 서비스를 제공해 주기 위해서는 어떤 이슈들이 존재하며 그들을 해결하기 위해서는 어떤 기법을 사용할 수 있는지를 다루었다. server 쪽에서는 multi-threading을 통해서 performance를 올리는 것을 중점적으로 다루었는데, 여기서 갑자기 single-threaded server이지만 parallelism을 제공하여 성능 향상을 줄 수 있는 방법은 asynchronous non-blocking system call을 사용하는 것이라고 하셔서 대혼동이 발생했다..