캐시(Cache) 설계 전략
·
OS
1. 캐시란 무엇인가?캐시는 자주 조회되지만 자주 변경되지 않는 데이터를 메모리(Redis, Memcached 등)에 저장해 응답 속도 향상과 DB 부하 분산을 도와주는 기술입니다. 캐시를 이용하게 되면 반드시 데이터 정합성 문제가 발생합니다. 데이터 정합성이란 어느 한 데이터가 캐시와 데이터베이스 이 두 곳에서 같은 데이터임에도 불구하고 데이터 정보값이 다른 현상을 말합니다. 따라서 적절한 캐시 읽기/쓰기 전략을 통해 이러한 문제를 해결해야 합니다. 2. 캐시 읽기 전략 (Read Strategy) - Look Aside 절차: 캐시 먼저 조회 → Cache Miss 시 DB에서 조회 (Cache Hit이 발생하면, 그 데이터 전달) → 조회 결과를 캐시에 저장특징가장 많이 사용되는 읽기 전략읽기가..
[Linux] 리눅스 사용자 권한과 chmod 명령어
·
OS
1. 리눅스 사용자 권한 개념리눅스에서 파일과 디렉터리는 소유자(owner), 그룹(group), 기타 사용자(others) 세 가지 범주로 권한이 부여됩니다. ✅ 사용자(User) 유형소유자(Owner, u): 파일을 만든 사용자그룹(Group, g): 같은 그룹에 속한 사용자기타 사용자(Others, o): 위 두 그룹에 속하지 않는 나머지 모든 사용자✅ 권한(Permissions) 유형각 사용자 유형은 다음 3가지 권한을 가질 수 있습니다.기호의미설명r읽기 (Read)파일 읽기, 디렉터리 내용 목록 보기w쓰기 (Write)파일 수정, 디렉터리 내 파일 생성/삭제x실행 (Execute)파일 실행, 디렉터리 이동 (cd 가능) ✅ 권한 확인 (ls -l 명령어 사용)ls -l file.txt 2. ch..
[운영체제] 가상 메모리
·
OS
페이징 기반 메모리 관리 · 프로세스의 모든 메모리 참조는 논리주소이며, 이 주소는 수행시간에 물리주소로 변환됨   ☞  한 프로세스가 그 수행 과정에서 스와핑을 통해 다시 메모리에  적재될 때, 그 이전과 다른 위치에 적재될 수 있음을 의미 -> 재배치 · 한 프로세스의 주소공간은 페이지로 분할될 수 있고, 프로세스 수행 중 이 페이지들은 메모리의 연속된 영역에 위치할 필요가 없음   ☞ 프로세스가 수행될 때 페이지 테이블을 활용해 동적으로 주소를 변환함으로써 가능케 함 ● 만약 두 특성이 만족된다면, 수행 시간에 프로세스의 모든 페이지(혹은 세그먼트)가 주기억장치에 적재되어 있을 필요가 없음 ! 프로세스의 일부 페이지 적재 후 실행 방법 - 운영체제는 초기에 수행될 프로세스의 코드와 데이터가 포함되도..
[운영체제] 스레드 동기화
·
OS
스레드 동기화다수의 스레드가 공유 데이터를 동시에 접근할 때 공유 데이터가 훼손되지 않게 스레드의 실행을 제어하는 기법한 스레드가 공유 데이터 사용을 마칠 때까지 다른 스레드가 공유 데이터에 접근하지 못하도록 제어‣ 임계구역과 상호배제임계구역 : 공유 데이터에 접근하는 프로그램 코드들상호배제 : 임계구역에 먼저 진입한 스레드가 임계구역의 실행을 끝낼 때까지, 다른 스레드가 진입하지 못하도록 보장상호배제 구현 요구조건상호배제가 강제되어야 함임계구역에 접근하고자 하는 스레드의 수행이 무한히 미루어져서는 안 됨임계구역이 비어 있을 때, 임계구역에 진입하려고 하는 스레드는 즉시 임계구역에 들어갈 수 있어야 함일반 코드에서 수행이 멈춘 스레드는 다른 스레드의 수행을 간섭해서는 안 됨스레드 개수나 상대적인 스레드 ..
[운영체제] 컴퓨터 시스템 계층 구조
·
OS
컴퓨터 시스템이 계층 구조로 설계된 이유?-계층 간의 독립성 확보를 위해(추상화)  ‣ 사용자 : OS나 하드웨어에 대한 지식이 없어도 응용 프로그램으로 컴퓨터 활용 가능  ‣ 응용 프로그램 개발자 또는 응용 프로그램     : 장치 타입이나 구조, 제어 방법을 몰라도 개발 가능       컴퓨터 하드웨어가 바뀌어도 응용프로그램 다시 작성할 필요 없음‣ 운영체제       : 장치 관련된 모든 작업을 디바이스 드라이버에게 요청       응용프로그램과 하드웨어 사이 인터페이스 역할 사용자에 대한 운영체제의 역할- 사용자가 하드웨어에 관한 지식이 없어도 컴퓨터를 다루기 용이하게 함- 사용자에게 컴퓨터 시스템을 사용할 편리한 인터페이스 제공- 컴퓨터의 사용을 돕는 여러 도구 응용프로그램(유틸리티) 제공   ..