728x90
반응형

CS 92

MacOS M1 간단 MySQL 설치 및 Homebrew로 설치하기, Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러 해결

MariaDB가 설치되어 있는 상태에서 homebrew로 mysql까지 설치하려고 하니 충돌이 발생하고 오류가 너무 많이 발생해서 삽질한 거 정리할 겸 남겨보려고 합니다. 저는 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 해당 오류가 계속해서 발생했고 본 에러를 해결하기 위해 처음부터 다시 진행하는 방법으로 해결하였습니다. 만약 위와 같은 에러가 발생한다면 아래와 같이 진행하시면 도움이 될 것 같습니다. 0. Homebrew 설치 Homebrew는 설치가 이미 되었다고 가정하고 시작합니다. 만약 아직 homebrew가 설치되어있지 않으시다면 아래 글을 통해 설치 먼저 바랍니다. https://eunhee-programm..

CS/MySQL 2023.06.20

[OS] Process Synchronization(2) - 프로세스 동기화

동기화 하드웨어 단일 프로세서 시스템의 경우 공유된 변수를 변경하는 동안에 인터럽트를 발생할 수 없도록 하면 위와 같은 문제를 보다 쉽게 해결할 수 있다. 인터럽트 억제 방법을 이용한 임계 구역 문제의 해결책 do{ disable interrupt critical section enable interrupt remainder section }while(1); 다중 프로그래밍에 큰 영향을 주므로 효율적인 해결책은 아니다. 다중 프로세서 시스템에서는 인터럽트가 발생할 수 없도록 하더라도 여전히 두 프로세서에서 두 프로세스가 동시에 실행될 수 있어 임계 구역 문제를 해결할 수 없다. 이 때문에 인터럽트를 억제하는 방법 대신 대부분의 시스템은 이런 문제를 해결할 때 사용할 수 있는 특수한 하드웨어 명령어를 제공..

CS/OS 2023.06.15

[OS] Process Synchronization(1) - 프로세스 동기화

프로세스 동기화 프로세스는 독립적으로 수행되면 올바르게 동작하나 공유 변수의 값이 결과에 영향을 주므로 병행으로 수행되면 실행되는 순서에 따라 올바르게 동작하지 않을 수 있다. 공유 메모리에 있는 변수 counter의 값이 5일 때, 생산자와 소비자가 각각 "counter++;"와 "counter--;"를 병행으로 수행하면 결과는 5가 되어야 하지만 그렇지 않을 수 있다. → 이처럼 병행으로 수행되는 여러 프로세스가 공통된 데이터를 조작할 때 결과가 접근 순서에 의해 결정되면 경합 상태(race condition)가 존재한다고 한다. 임계 구역 문제 임계 구역(critical section) : 프로세스 코드의 일부분으로서, 다른 프로세스와 공동으로 사용하는 변수, 테이블, 파일 등을 변경하는 부분임계 ..

CS/OS 2023.06.14

[OS] Memory Management(2) - 메모리 관리

하나의 프로세스 당 하나의 Page Table을 가지고 있기 때문에 이를 효율적으로 관리할 필요가 있음 따라서 Page Table Structure에 따라 구분 가능 페이지를 Hierarchical(계층적)으로 쪼갠 것 간단한 기술의 예로는 2레벨 Page Table, 위처럼 큰 범주로 먼저 나누고 그 안에서 또 나누는 형태 논리적 주소는 32비트, 4K 크기의 Page로 나뉜다. 한 테이블 안에 20bit -> 100만개 entries page offset은 12bit -> 4096, 4K 그림에서 보이듯 page number는 10bit씩 2개로 나누고 page offset은 12bit로 표현 p1은 outer page table에 사용되는 주소값, p2는 다음 level에서 사용(다음 내용 이어서)..

CS/OS 2023.05.29

[OS] Memory Management - 메모리 관리

모든 프로그램은 실행시키려면 메모리 위에 존재해야한다. Input Queue를 통해 메모리로 올라온다. Input Queue에서 기다렸다가 올라옴 사용자는 몇 단계를 거쳐 프로그램을 실행시킨다. source 작성 -> compile -> object module, 한 가지의 module만 존재하는 것이 아니기 때문에 other object modules과 연결시키기 위해 linkage editor가 존재 -> 그 결과로 load module -> loader로 메모리 load -> System library와 함께 load하여 사용 -> CPU 할당 받아 실행 Address binding : Instruction과 Data를 메모리 위로 올린다는 것 Compile time : Compile 하기 전 실제..

CS/OS 2023.05.27

[OS] Deadlocks (2) - 교착상태

사용하는 변수는 4가지 Available : 여유분 Max : 최대 필요한 자원의 개수 Allocation : 할당된 자원의 개수 Need : 앞으로 추가적으로 필요한 자원의 개수 2차원 matrix형태로 모두 존재 앞으로 필요한 자원의 개수는 최대치에서 이미 할당된 자원을 빼준 정도 어느 한 순간 Safety한 상태인지 체크 여러 개의 process가 존재할 때 안정적으로 처리할 수 있는 순서도가 있는가 확인 fisnish가 false인 것 중 need(i)가 work보다 작거나 같은 것을 찾는다 만약 존재하지 않는다면 6단계로 Need는 필요한 만큼 줬다가 다시 회수, 여유분이 늘어나는 것은 이미 할당된 것들 회수 Finish[i]를 True로 전환하고 다시 2단계로 만약 모든 프로세스가 Finish..

CS/OS 2023.05.16

[OS] Deadlocks (1) - 교착상태

데드락이 어떻게 발생하는지, 어떻게 방지하고 회피하는 방법 항상 자원이 부족해서 발생하는 현상 P1이나 P2가 작업을 완료하기 위해서는 tape drives 2개 필요 다 만족하기 위해서는 4개가 필요한데 전체 2개가 필요하면 자원이 부족한 경우가 발생할 수 있음 서로 자원을 필요로 하는데 부족한 경우가 발생하면 이는 데드락 상태를 야기 둘다 1로 초기화 되어있음 wait(A), wait(B)로 서로 기다리고 있음 처음 값이 1이어서 통과하지만 0으로 줄어듦 그 뒤는 while문에 걸려 무한반복으로 deadlock signal operation을 만나면 값이 증가되어 종료될 수 있지만 그곳까지 가지도 못함 또 다른 예로 다리 상태 어느 한 쪽은 양보를 해야 해결이 되는데 다른 문제가 발생할 수 있음 후진..

CS/OS 2023.05.09

Kafka 초기 설정 방법 - (Topic 생성 및 확인, Producer/Consumer 설정)

Zookeeper / Kafka / Producer - Consumer 총 4개의 shell이 필요 실행 순서는 Zookeeper 실행 Kafka 실행 Producer Message 발행 Consumer Message 수신 ① Zookeeper 실행 - Kafka 파일이 있는 곳으로 이동하여 아래와 같은 명령어를 통해 실행 ./bin/zookeeper-server-start.sh ./config/zookeeper.properties → port가 0.0.0.0:2181로 실행된 것을 확인할 수 있다. ② Kafka Server 실행 - Kafka 파일이 있는 곳으로 이동하여 아래와 같은 명령어를 통해 실행 ./bin/kafka-server-start.sh ./config/server.properties ..

CS/Apache Kafka 2023.05.08

[OS] Process Synchronization (2) - 프로세스 동기화 (강의 내용)

일반적인 프로세스 구조 critical section 진입 전 entry section을 통해 3가지 조건 중 상호배제 조건을 갖춤 위 그림 중 위 그림은 상호배제 조건을 만족한 그림으로 count 변수 사용을 상호 배제 상태에서 진행함 하지만 아래 그림은 같은 변수를 같은 동기화 내에서 진행하는 그림으로 표현됨 어느 한 process가 critical section에 진입하게 되면 interrupt system을 disable해버린다. 그렇게 할 경우 다른 process가 같은 critical section에 진입하는 것을 방지할 수 있다. CPU가 한 개일 경우에는 위처럼 해결할 수 있으나 그렇지 않은 경우에는 확장성에 문제가 생겨 그렇게 할 수 없다. Busy Waiting을 요구하지 않는 Sync..

CS/OS 2023.05.04

[SQL] 프로그래머스 : 즐겨찾기가 가장 많은 식당 정보 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 음식종류별로 즐겨찾기 수가 가장 많은 식당의 정보를 출력하는 문제이다. 음식종류별 → Group By를 통해 같은 음식 종류는 그룹화해준다. 즐겨찾기 수가 가장 많은 → MAX Method를 통해 최대값 추출 주의할 점, group by를 통해 그룹화한 후, max를 이용하여 최대값만 추출한다면 가장 많은 즐겨찾기 수 값을 출력할 수 있겠지만 그에 해당하는 그 외 정보들은 출력할 수 없다. 따라..

728x90
반응형