전체 글 155

안드로이드 앱 구성 (kotlin)

안드로이드를 처음 시작하게 되면 여러 파일들이 시작부터 만들어진다. 1. manifests 폴더의 AndroidManifest.xml 앱 환경 설정 파일 이는 앱의 메인 환경 파일이다. 이곳의 앱의 컴포넌트들을 등록하여 앱이 인지하게 하고 컴포넌트의 생명주기를 다루게 된다. 2. MainActivity file 메인 엑티비티 파일은 엑티비티 컴포넌트로 위의 manifest file에 맞추어서 생성되고 실행된다. 3. 리소스 폴더 res 폴더는 앱의 리소스를 등록하는목적으로 사용된다. 이 리소스 폴더 아래에 파일을 생성하게 되면 R.java 라는 파일에 자동으로 등록된다. 따라서 다른 파일에서 등록한 파일을 사용하려면, 이름을 정확히 면시해 주어야 하며 R.java 파일에 자동으로 등록되기 때문에, 규칙들..

android-kotlin 2023.07.17

컴네 data link mac

mac는 data link의 sublayer 중 하나이다. 이는 broadcast 방식의 shared link 인 경우에 사용된다. random access의 경우에는 순서가 없기 때문에 무작위로 경쟁을 통해서 데이터를 보낸다. random access의 경우에는 충돌이 발생할 수 있다. 충돌을 감지 하는 방법은 에너지 준위를 감지하여 충돌인지 아닌지를 탐지한다. 우선 aloha protocol을 알아보자. 순수 aloha의 경우 data를 보낸후 ack를 수신하기를 기대한다. ack 가 제한 시간안에 수신되지 않으면 데이터를 재전송한다. 이때의 제한 시간은 전체 maximum 길이의 전송시간의 두 배이다. 이때의 문제는 충돌이 발생하였을때에 재전송을 언제 할 것인지가 문제가 될 수 있다. 이 해결책은 ..

카테고리 없음 2023.04.15

컴네 data link layer DLC

data link layer는 physical layer 와 network layer 사이에 있으며, 인접한 layer에서 정보를 받아 전달을 하는 역할을 한다. data link 은 여러가지 역할을 수행하는데, 1. framing 2. flow control 3. error control 4. media access control 5. congestion control(?) 이 있다. data link 에는 두가지 sublayer 또한 존재한다. DLC 와 MAC 인데, DLC의 경우에는 1,2,3을 해결하고, MAC에서 남은 4번을 해결한다. 이 4 - mac의 경우는 여러 media 들이 모여있는 shared link (broadcast) 에서 일어나는 문제를 해결하는 방법이다. framing의 경..

카테고리 없음 2023.04.13

컴네 physical layer

data communication - accuracy : 왜곡등이 없이 정확한 데이터가 도착하여야 한다. - delivery : 전달이 잘 되어야 한다. - timeless : 제 시간에 도착해야 한다. - jitter : 도착하는 시간이 각기 다를 수 있다. data flow - simplex - half-duplex - full-duplex network criteria - reliable - security - performance physical structure - mexh - star - bus - ring LAN : 지역 네트워크로, 사적 네트워크가 해당된다. WAN : 더 넓은 지역으로, 보통 LAN 끼리 연결되며, 라우터를 통하여 연결된다. 이런 wan들 끼리도 연결되는데, 최상위를 ba..

카테고리 없음 2023.04.09

sql문 공부

select 문 select 구성요소 SELECT select_list [ INTO new_table ] [ FROM table_source ] [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] into는 새 테이블 명, from 은 기존 테이블 select list 는 coloum 을 택합니다. as 를 사용하여 별칭(alias) 를 붙일 수 도 있다. 또한 새 컬럼을 추가 할 수 있다. // round(,몇 번째에서 올림) 로 반올림 // avg로 평균 // ifnull 을 사용하명 null 인 경우의 item을 정..

카테고리 없음 2023.03.26

운체 궁금했던거

일반적으로 프로세스의 페이지 테이블 정보는 커널 스택에 직접 저장되지는 않습니다. 커널 스택은 각 프로세스마다 독립적으로 할당되는 것이 아니라, 커널 전체에서 공유되는 메모리 공간이기 때문입니다. kernel 스택에 프로세스 switching 시에 저장되는 정보는 뭐야? 프로세스 스위칭 시에는 커널 스택(kernel stack)에도 일부 정보가 저장됩니다. 이 정보는 주로 인터럽트나 예외 처리 시에 필요한 정보들입니다. 보통 커널 스택에 저장되는 정보에는 다음과 같은 것들이 있습니다. 인터럽트 또는 예외 처리 시에 저장되는 레지스터 값: 인터럽트나 예외가 발생하면 커널 모드로 전환되고, 해당 인터럽트 또는 예외를 처리하는 인터럽트 핸들러(interrupt handler)가 실행됩니다. 이때 현재 실행 중..

운영체제 2023.03.26

운영체제 segmentation, free space

segmentation이란 mmu에서 base, bound 를 활용해서 가상메모리에서 물리적 주소로 변환할 때에 사용한다. 그런데 이때에 충돌을 경계해서 메모리의 구역을 나누는 것이 segmentation이다. 예를 들어서 메모리에 code, heap, stack 을 할당해야 할 때에 전체 메모리를 4등분을 해야한다. 3개인데 4등분을 하는 이유는 2의 제곱으로 나누어야 하기 때문이다. 따라서 4등분을 위해서는 2개의 bit를 필요로 하는데, 그렇기에 16kb 메모리의 가상주소의 14bit 중의 앞의 2비트는 segment 를 나타내는 수로 사용되고 뒤의 나머지 12bit 는 base 주소로 부터 떨어진 offset을 나타낸다. 아래의 그림에서의 segement 는 code 는 00 , heap 은 01..

운영체제 2023.03.15

운영체제 adress translation

protection을 위해서는 1. mmu (하드웨어에서 처리) 2. dual mode (안전을 위해 kernel 에 접근할 수 있는 모드와 아닌 모드를 나눈다.) mmu 는 가상의 주소를 물리적 주소로 바꾸어 주는 역할을 한다. 이러한 작용으로 프로그래머들 에게 메모리를 독점하는 듯한 착각을 들게 한다. 이를 학습하기 전에, 우선 모든 메모리가 연속적이라고 가정한다. virtual memory space 도 물리적 memory 보다 작다고 가정한다. 모든 process가 가지는 주소 공간이 같다고 가정한다. 가상주소를 물리적 주소로 바꿀 때에 있어서는 base 값을 더해준다. 그리고 그 값이 bound 를 넘는지를 체크한다. 따라서 mmu에서는 base 와 bound 를 가져야 한다. 그리고 이는 프로..

운영체제 2023.03.12

운영체제 address space

메모리에는 여러 프로세스의 정보들이 저장된다. 이때에, 여러 프로세스들은 가상 주소를 가진다는 것을 앞서서 알아 보았다. 예를 들어 같은 코드의 프로세스를 두개를 동시에 실행하였을 때에 같은 주소를 공유하는 경우가 있었다. 하지만, 실제로는 둘 다 다른 주소의 메모리를 사용한다는 것이다. 그리고 cpu와 저장되어있는 코드들, 메모리에도 가상주소를 기준으로 저장되어있다. 따라서 우리는 우리가 가지고 있는 가상메모리 주소를 실제의 물리주소로 바꾸어 주어야 한다. 따라서 이를 수행해주는 곳이 바로 mmu 이다. 이 mmu 의 목표는 투명해야 하여, 빨라야 하고 메모리 들은 서로 나누어져 고립되어 있어야 한다. 여기서의 투명의 의미는 바로 뒤의 실행 되는 것이 보인다는 것이다. 예를 들어서 우리가 프로그램을 작..

운영체제 2023.03.12

운영체제 scheduling proportional share

앞에서 살펴본 mlfq 같은 경우에는 performance 와 fair 중에서 perfomance 에 집중한다고 할 수 있다. 이번에는 fair에 집중해 보자, fair인 공정함에 초점을 맞춘 proportional share 비례배분이 있다. 이는 비율을 지켜서 그에 따라서 cpu 를 실행하는 것인데, 그러한 스케줄의 예로는 lottery scheduling 이 있다. 이는 각각의 프로세스에 ticket 을 배부한 후에 랜덤으로 수를 뽑아서 그 티켓을 가지고 있는 프로세스를 실행하는 방법이다. 이때, 티켓을 배부 할 때에, 비율에 맞추어서 티켓의 개수를 정해서 배부한다. 이 lottery scheduling 에는 여러 메커니즘이 있는데, 1. ticket currency - 프로세스 안에서 지역 화폐를..

운영체제 2023.03.12