728x90
반응형

운영체제 11

리눅스에서 Avahi와 mDNS로 로컬 네트워크 장치 발견하기

여러분, 로컬 네트워크에서 장치를 쉽게 찾고 연결하는 방법에 대해 궁금해한 적이 있나요? Avahi와 mDNS(Multicast DNS)는 이를 가능하게 하는 중요한 기술입니다. 이 글에서는 Avahi와 mDNS의 개념, 작동 원리, 그리고 실제 사용 예에 대해 알아보겠습니다.mDNS란 무엇인가?기본 개념멀티캐스트 DNS(mDNS)는 로컬 네트워크에서 도메인 이름을 IP 주소로 변환하는 프로토콜입니다. 전통적인 DNS가 인터넷에서 도메인 이름을 IP 주소로 변환하는 데 사용되는 반면, mDNS는 로컬 네트워크 내에서 이러한 변환을 수행합니다. mDNS는 특히 Zero Configuration Networking(Zeroconf)의 일부로, 중앙 서버 없이도 네트워크 장치들이 서로를 인식하고 통신할 수 있..

운영체제 2024.08.04

APT 패키지 관리: 특정 저장소에서 패키지 불러오기와 설정 파일 이해하기

개발하면서 Linux를 이용하는 일이 잦아졌는데, apt패키지에 대해서 내가 알게된 내용들을 정리해려고합니다. 여태는 아무것도 모르고 apt를 이용해서 패키지들을 설치하면 된다고 믿었는데, 이참에 어디서 패키지를 다운받고 있는지를 알아보려고 합니다.  APT 패키지 관리자는 Debian 기반 시스템에서 패키지 설치, 업데이트 및 제거를 관리하는 강력한 도구입니다. 이 글에서는 특정 저장소에서 패키지를 불러오는 방법과 APT의 주요 설정 파일들을 소개하려고합니다.1. APT 설정 파일들/etc/apt/sources.list이 파일은 APT가 사용할 패키지 저장소 목록을 포함합니다. 각 줄은 하나의 저장소를 나타냅니다./etc/apt/sources.list.d/이 디렉토리는 추가적인 소스 목록 파일들을 포함..

운영체제 2024.07.14

dpkg: Debian 기반 시스템의 패키지 관리 도구

dpkg는 Debian 기반 시스템에서 소프트웨어 패키지를 관리하는 저수준 도구로, .deb 파일 형식의 패키지를 설치, 제거, 및 정보 조회 등을 할 수 있습니다. dpkg는 Debian, Ubuntu 등과 같은 배포판에서 널리 사용됩니다. 주요 기능 및 명령어는 다음과 같습니다:패키지 설치.deb 파일을 설치합니다.sudo dpkg -i package_name.deb패키지 제거설치된 패키지를 제거합니다.sudo dpkg -r package_name패키지 정보 조회설치된 패키지의 정보를 확인합니다.dpkg -s package_name 설치된 패키지 목록 조회시스템에 설치된 모든 패키지를 나열합니다.dpkg -l 파일 목록 조회특정 패키지에 포함된 파일들을 나열합니다.dpkg -L package_na..

운영체제 2024.06.14

[운영체제(OS)] 7-2. 프로세스 동기화 (Process Synchronization)

저번글까지 critical section problem 문제를 해결하기 위한 알고리즘에 대해서 알아보았다. 오늘은 lock을 이용해서 critical section problem을 해결하고 semaphore에 대해서 알아보도록 하겠다. 프로세스 동기화에 대해 알고 Peterson’s Algorithm을 이해하였다. 하지만 우리가 개발을 하는 입장일 때, 어떤 과정을 통해 동기화 과정이 해결되는 지 몰라도 기계적으로 코딩할 수 있도록 하는 것이 더 좋은 방법일 것이다. 그래서 나온것이 Lock이용한 해결법이다. 동작방식 1. lock을 가진 process만이 critical section에 들어갈 수 있다. 단 lock은 하나의 process에게만 주어져야 한다. 2. critical section이 끝나..

운영체제 2022.03.23

[운영체제(OS)] 7-1. 프로세스 동기화 (Process Synchronization)

여러개의 process가 동시에 동작할 때, 공유된 데이터에 대해 안전하게 동작하기 위해서 프로세스 동기화가 필요하다. 프로세스가 shared data(공유 데이터)에 concurrent access(동시접근)하면 data가 일치하지 않을 수 있다. 그 예는 밑에 작성하도록 하겠다. 따라서 데이터 일관성(data consistency)을 유지하려면 프로세스가 차례대로 데이터에 접근해 실행을 할 수 있도록 해야한다. Race Condition : 여러 프로세스가 동시에 공유 데이터에 접근하고 데이터를 수정하고 있는 상황을 말한다. 이렇게 Race Condition이 발생하면 공유 데이터의 최종 값은 마지막으로 공유 데이터에 쓰여지는 값이 된다. Race Condition을 방지하려면 프로세스를 동기화해 한..

운영체제 2021.08.11

[운영체제(OS)] 6-2. CPU 스케줄링 (CPU scheduling)

CPU스케줄링에서 SJF알고리즘을 사용한 스케줄링을 하려면 process들의 cpu 사용시간을 알아야했다. 하지만 process들의 미래 cpu사용시간을 아는 것은 불가능하고 SJF 알고리즘을 사용하는데 문제가 생기게되었다. 따라서 SJF 알고리즘을 사용하기 위해서 사람들은 process들의 CPU 사용시간을 예측하는 수학적 모델을 만들었다. Exponential Averaging 수학적 모델 Exponential Averaging 모델 : 이전에 프로세스가 쓴 CPU 사용시간을 가지고, 미래 프로세스가 사용할 CPU 사용시간을 예측한다. 다음은 후에 나올 수식에서 사용되는 용어들을 정의한 것으로 밑의 그림과 같이 연관되어 보면 이해할 수 있다. n번째에 CPU를 사용한 실제 시간 n+1 번째의 CPU ..

운영체제 2021.08.10

[운영체제(OS)] 6-1. CPU 스케줄링 (CPU scheduling)

Short-Term schduling이라고 불리는 CPU scheduling은 현재 CPU 자원을 어떤 process에게 할당할 것인가를 결정하는 것이다. Process는 CPU사용시간에 따라 두가지 종류로 나뉠수 있다. I/O bound job : CPU를 사용하는 빈도는 많지만(CPU를 process가 잡는 빈도) 실제 사용하는 시간은 적은 process를 가르킨다. CPU bound job : CPU를 사용하는 빈도는 적지만 실제 사용하는 시간은 긴 process를 가르킨다. 계산 위주의 일을 많이하며 사용자랑 상호작용을 많이한다. CPU scheduling은 이 두가지를 고려해서 만들어야 한다. 사용자가 실행시키는 프로그램의 반응이 느리면 사용자는 답답해 할 것이다. 그러므로 CPU bound j..

운영체제 2021.08.06

[운영체제(OS)] 5. 프로세스와 스레드 (Processes And Threads)

Process Concept 프로세스란? 실행 중인 프로그램(즉 메모리에 올라간 프로그램을 가르킨다) 프로그램 실행은 순차적인 방식으로 진행되어야 한다.(만들어진 코드들이 순차적으로 진행되어야한다) 프로세스는 다음을 포함한다. 텍스트 섹션(text section): 프로그램 코드 프로그램 카운터(PC) 및 레지스터 값 스택(stack): 매개변수, 반환 주소(return address), 지역 변수(local variable) 등을 저장한다. 데이터 섹션(data section): 정적변수(static variable)와 전역 변수(global variable)를 저장합니다. 동적 할당을 위한 힙 섹션(사용 가능한 메모리 풀에서 찾아서 할당해줌) 다음은 메모리에 있는 process의 주소공간을 나타냅니다..

운영체제 2021.07.27

[운영체제(OS)] 4. 운영체제 개요 (Operating System Overview)

Operating System Structure(운영체제 구조) Multiprogramming Multiprogramming은 효율성을 위해서 필요하다. Multiprogramming을 쓰지 않는다면 CPU는 놀 것이다. Multiprogramming은 job들을 구성해서 CPU가 항상 한가지를 실행 할 수 있도록 한다. Job scheduling(CPU scheduling)을 통해 한개의 job이 선택되고 실행된다. I/O가 발생해서 CPU가 기다려야 한다면 OS는 다른 job으로 switch 시킨다. 여기서 job이란 cpu가 실행할 일들 이라고 생각하면 된다. Timesharing(multitasking) CPU가 실행하는 job들을 자주 바꾸면서 user들은 각각의 job들이 모두 실행중인것 처럼..

운영체제 2021.07.25

[운영체제(OS)] 3. 컴퓨터 시스템 (Computer System Overview 2)

Memory Hierarchy 가장 이상적인 Memory는 용량이 크면서 빠른 Memory일 것이다. 하지만 현재까지는 이런 메모리는 존재하지 않아 우리는 이상적인 메모리의 효과를 낼 수 있도록 해야한다. 메모리 계층 구조가 올라 갈수록 다음과 같은 특징을 가진다. 접근 시간이 빨라진다. 용량이 작다. 비트당 비용은 비싸다. 계층 구조가 낮아질수록 비트당 비용이 싸다. 접근시간이 증가한다. 프로세서에 의한 메모리 접근빈도가 감소한다(Cache에 올려놓고 사용하기 때문에). Cache Memory Cache란 Main memory와 CPU 사이에서 존재하는 메모리이다. Main Memory에서 data를 가져오기 전 CPU가 Cache에 원하는 data가 있다면 빠르게 접근해 가져올 수 있는 작은 메모리이..

운영체제 2021.07.23
728x90
반응형