반응형 분류 전체보기505 운영체제 - 캐시메모리, 캐시 컨트롤러,레지스터, RAM의 상호 작용(캐시 미스(Cache Miss),캐시 히트(Cache Hit) ) 1. Memory Hierachy 01 레지스터 레지스터는 CPU내부에 위치한 저장공간이다. 직접 액세스할 수 있기 때문에 매우 빠르다. 명령어와 데이터를 직접 저장하고 처리하는데 사용한다. 레지스터는 용량이 제한적이기 때문에 데이터를 계속 저장시킬 수 없다. 그러므로 CPU는 데이터를 임시로 레지스터에 저장하고 작업을 수행한 후 필요 없어진 레지스터는 제거된다. 02 캐시 메모리 캐시 메모리도 CPU내부에 존재하는 저장공간이다. 일반적으로 여러 레벨로 구성되며 레지스터와 RAM사이에서 중간단계에서 동작한다. 캐시 메모리에는 CPU명령어, 데이터(CPU가 작업을 수행하는 동안 필요한 데이터), 캐시 라인, 자주 액세스 하는 데이터 등을 저장한다. 캐시 블록 캐시 메모리는 데이터를 효율적으로 관리하기 위해.. 2023. 5. 26. 운영체제 - 커널(Kernel), 커널모드, 사용자모드 운영체제 두 가지 역할을 가진 소프트웨어 1) 하드웨어(CPU, Memory, Devices 등) 관리 2) 응용프로그램과 하드웨어 간의 인터페이스 역할을 수행하여 소프트웨어가 하드웨어에 액세스 Linux 운영체제 중 하나이고 세 가지 구성요소로 구성 1) 커널(Kernel) : 하드웨어와 직접 상호 작용하고 운영 체제의 기능을 제공한다. 2) 시스템 라이브러리(System Libraries) : 응용 프로그램이 운영체제 기능을 사용할 수 있도록 인터페이스를 제공하는 라이브러리들이다. 3) 시스템 유틸리티(Sysem Utilitites) : 운영체제 관리 및 유지 보수 작업에 사용되는 유틸리티 프로그램들이. 커널(Kernel) 운영체제의 핵심 기능을 구현하고 하드웨어와 응용프로그램간의 상호 작용을 관리하.. 2023. 5. 26. 운영체제 - Backoff(Thread.Sleep(0), Thread.Yield()) 이 코드를 실행한 다음에 실패했을때 어떤 행동을 취하는 것이 락을 구현할때 어떤 방법을 사용할지를 결정하게 된다. int expected = 0; int desire = 1; int original = Interlocked.CompareExchange(ref _locked, desire, expected); if (original == 0) break; 실패 한다음에 바로 루프를 시작하면서 재차 시도를 하면 스핀락이 되는 것이고 기다렸다가 다시 오면 Backoff가 된다. SpinLock 알아보러 가기 운영체제 - SpinLock(스핀락) - Test-and-Set, Compare-and-Swap SpinLock(스핀락) 동기화 기법 중 하나로 여러 쓰레드가 공유자원에 접근한느 것을 제어하기 위해 사용된.. 2023. 5. 26. 백준 C# - 11005 +) 풀이 관련문제 보러 가기 백준 C# - 2745 using System; using System.Collections.Generic; namespace baek2 { class Program { static void Main(string[] args) { string input = Console.ReadLine(); string[] token = input.Split(); string n = token[0]; int m = int.Parse(token[1]); Dictionary dic = new Di code-piggy.tistory.com 풀이 01 Dictionay부분은 위의 2745 참조 02 반복문을 통해서 B진법으로 바꾸기 while (div>0) { int remainder = div % m; s.. 2023. 5. 25. 백준 C# - 2745 관련문제 보러가기 백준 C# - 11005 +) 풀이 관련문제 보러 가기 백준 C# - 2745 using System; using System.Collections.Generic; namespace baek2 { class Program { static void Main(string[] args) { string input = Console.ReadLine(); string[] token = input.Split(); string n = token[0]; int m = code-piggy.tistory.com using System; using System.Collections.Generic; namespace baek2 { class Program { static void Main(string[] a.. 2023. 5. 25. 운영체제 - Semaphore(세마포어), Mutex(뮤텍스) Mutex 여러 쓰레드가 공유 자원에 접근하는 것을 제어하기 위해 사용된다. 커널 동기화 객체이다. 오직 한 번에 하나의 프로세스 또는 쓰레드만이 임계구역에 진입할 수 있도록 한다. 01 WaitOne Mutex에 대한 접근을 시도하고 허용될때까지 대기한다. public virtual bool WaitOne (); 02 ReleaseMutex Mutex를 한번 해제한다. public void ReleaseMutex (); Code 예시 static Mutex mutex = new Mutex(); static void Main(string[] args) { for (int i = 0; i < 5; i++) { Thread thread = new Thread(MutexExample); thread.Name .. 2023. 5. 23. 이전 1 ··· 58 59 60 61 62 63 64 ··· 85 다음 반응형