호우동의 개발일지

Today :

[OS] 운영체제의 빌딩과 부팅, 그리고 디버깅

운영체제 빌딩과 부팅 일반적인 운영체제 → 다양한 주변장치 구성을 가진 모든 종류의 컴퓨터에서 실행되도록 설계 운영체제 생성 운영체제 생성 절차 운영체제 소스 코드 작성 운영체제가 실행될 시스템의 운영체제 구성 운영체제 컴파일 운영체제 설치 컴퓨터와 새 운영체제 부팅 시스템 빌드 시스템 관리자가 운영체제 소스 코드의 사본을 수정한 뒤, 운영체제가 완전히 컴파일된다. 컴파일 시, 각 데이터는 구성 파일에 설명된 시스템에 맞는 운영체제의 출력-오브젝트 버전을 생성 상세한 조정을 할 수 없는 수준에서 시스템 설명을 통해 기존 라이브러리에서 사전 컴파일된 오브젝트 모듈을 선택 가능 모듈들이 서로 링크되어 새로운 운영체제 생성 → 지원되는 I/O 장치 드라이버를 포함한 라이브러리에서 필요한 것만 선택 가능 장점 ..

article thumbnail
[C++] 백준/BOJ - 11657 : 타임머신
Algorithm/BOJ 2023. 4. 2. 16:53

문제 이해 단계 https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net N개의 도시와 M개의 버스 노선이 주어진다. M개의 버스 정보로는 A, B, C가 들어오는데, (출발지, 도착지, 걸리는 시간)이다. 걸리는 시간에는 음수도 존재한다. 1번 도시에서 출발해서 각 도시별로 가장 빠른 시간을 출력한다. 이때, 무한대로 음수로 가는 시간이 나올 경우 -1을 출력한다. 또한 그 도시로 갈 수 없..

article thumbnail
[Network] OSI 와 TCP/IP의 계층 구조 및 데이터 통신 과정

네트워크의 규칙 프로토콜이란? 통신을 하기 위한 규칙(네트워크의 규칙) 규칙들은 상호 간의 영향을 주지 않는다.(독립적) OSI 모델 OSI 모델이란? 과거에는 케이블을 연결하는 커넥터나 컴퓨터가 회사끼리 다르면 통신을 할 수 없었음 → 다른 회사끼리 통신하고자 공통으로 사용할 수 있는 표준 규격을 정함 ISO : 표준 규격을 정하는 국제표준화기구 단체 → OSI모델이라는 표준 규격을 제정 7개의 계층(레이어)으로 나눔 통신할 때 데이터는 맨 위의 계층에서 아래 계층으로 순차적으로 전달 각 계층 설명 7 계층 - 응용 계층 애플리케이션 계층 이메일, 파일 전송, 웹사이트 조회 등 애플리케이션에 대한 정보 제공 6 계층 - 표현 계층 프레젠테이션 계층 문자 코드, 압축, 암호화 등의 데이터를 변환 5 계층..

article thumbnail
[Network] 기초 용어 설명 및 LAN / WAN 구성

네트워크의 구조 컴퓨터 네트워크란? 컴퓨터가 2대 이상 연결되어 있으면 컴퓨터 네트워크 할 수 있는 일 데이터 전송, 웹 사이트 열람, 메일 송수신 인터넷 : 전 세계의 큰 네트워크부터 작은 네트워크까지 연결하는 거대한 네트워크 패킷이란? 송/수신 간에 네트워크를 통해 전송되는 데이터의 작은 조각 큰 데이터가 있더라도 작게 나누어 보내야 함 작게 나누어 보내야 하는 이유 큰 데이터는 대역폭을 많이 차지 → 정체 발생 대역폭(bandwidth) 네트워크에서 이용 가능한 최대 전송 속도 정보를 전송할 수 있는 단위 시간당 전송량 용량이 큰 사진 데이터는 패킷으로 나눠서 보내야 함 → 목적지에 도착하면 원래 사진으로 되돌리는 작업 필요 패킷이 전송될 때 순서대로 도착하지 않거나, 누락될 수도 있음 → 목적지에..

article thumbnail
[OS] 운영체제 설계와 구현 & 운영체제 구조의 종류 정리

운영체제 설계 및 구현 설계 목표 시스템 설계의 첫 번째 문제점 → 시스템의 목표와 명세를 정하는 일 시스템 설계의 최상위 수준에서는 하드웨어와 시스템 유형의 선택에 영향을 받음 시스템 유형 : 일괄처리, 시분할, 단일 사용자, 다중 사용자, 분산, 실시간, 범용 등 최상위 설계 수준을 넘어서면 요구 조건을 일일이 명시하는 것이 훨씬 어려워짐 요구 조건은 근본적으로 사용자 목적과 시스템 목적 2가지 그룹으로 나뉨 사용자 목적 : 사용자들이 시스템에 기대하는 특징 시스템은 사용하기 쉽고, 편리하고, 믿을 수 있고, 안전하고, 신속해야 함 특징을 구현하는 방법에 대한 일반적인 합의 사항 X → 설계 명세에 쓸모없음 시스템 목적 : 시스템에 관련된 사람들에 의해 요구조건들이 정의되는 것 운영체제는 설계, 구현..

article thumbnail
[OS] 링커(Linker)와 로더(Loader) 개념 정리

링커(Linker)와 로더(Loader) 프로그램은 디스크에 이진 실행 파일(ex : a.out, prog.exe)로 존재해야 함 소스 파일은 임의의 물리 메모리 위치에 적재되도록 설계된 오브젝트 파일로 컴파일됨 이러한 형식의 파일을 재배치 가능 오브젝트 파일이라고 불림 프로그램을 CPU에서 실행하는 절차를 설명할 예정 CPU에서 실행하려면, 프로그램을 컴파일하고 메모리로 가져와 프로세스 형태로 배치해야 함 링커 : 재배치 가능 오브젝트 파일을 하나의 이진 실행 파일로 결합 링킹 단계에서 다른 오브젝트 파일 또는 라이브러리 포함될 수 있음 표준 C 라이브러리, 수학 라이브러리 등 로더 : 이진 실행 파일을 메모리에 적재 프로그램 부분에 최종 주소를 할당, 프로그램 코드와 데이터를 해당 주소와 일치하도록 ..

[OS] 시스템 서비스와 응용 프로그램이 OS마다 다른 이유

시스템 서비스 시스템 유틸리티라고도 불리고 프로그램 개발과 실행을 위해 더 편리한 환경을 제공 일부 : 단순한 시스템 콜에 대한 사용자 인터페이스 대부분 : 훨씬 더 복잡함 시스템 서비스는 다음의 범주로 분류 가능 파일 관리 이 프로그램은 파일과 디렉터리 제어와 관련된 조작을 한다. 파일 디렉터리 생성, 삭제, 복사, 이름 바꿈, 인쇄, 열거, 조작 등 상태 정보 통상 이 프로그램들은 정보를 출력 장치 혹은 파일로 포맷하여 인쇄, 혹은 GUI의 윈도에 표시 단순히 는 날짜, 시간, 가용 메모리, 디스크 공간의 양, 사용자 수 등의 상태 정보 제공 복잡하게는 상세한 성능, 로깅 및 디버깅 정보를 제공 몇몇 시스템은 환경 설정 정보를 저장하고 검색할 수 있는 등록 기능 제공 파일 변경 디스크나 다른 저장 장..

[OS] 시스템 콜(2) - 시스템 콜의 유형 정리

다섯 가지 중요한 범주로 묶을 수 있음 → 프로세스 제어, 파일 조작, 장치조작, 정보 유지 보수, 통신과 보호 1. 프로세스 제어 실행 중인 프로그램은 수행을 정상적 또는 비정상적으로 멈출 수 있어야 한다. 시스템 종류에 따른 제어 차이 정상 또는 비정상적인 상황에서, 운영체제는 명령 인터프리터로 제어를 전달한 상태 ← 사실 운영체제는 명령 인터프리터로 제어를 전달해야 함 대화식 시스템 단순히 다음 명령을 계속 수행 사용자가 오류에 대응하여 적절한 명령을 내릴 것이라고 가정함(사용자에게 맡김) GUI 시스템 비정상적인 상황이라면, 팝업창이 사용자에게 오류를 알리고 지시를 기다림 기타 시스템 오류가 발생한 경우, 제어 카드를 사용하여 특별한 복구 조치를 지시 오류 발견 뒤 비정상적으로 종료하기를 원한다면..