๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

OS

10์žฅ File Systems

 

reference: kocw์˜ ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜์™€ ๊ถŒ์ง„์šฑ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜(๋Œ€ํ•™ ์ •๊ทœ ์ˆ˜์—…)
์ˆ˜์—…์„ ๋“ฃ๊ณ ๋‚˜์„œ ๊ฐ•์˜ ๊ต์žฌ๋ฅผ ํƒ€์ดํ•‘ํ•˜๊ณ  ํ•„๊ธฐํ•œ ๋ถ€๋ถ„์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์›น๋ทฐ์—์„œ toc๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
github์˜ md ํŒŒ์ผ๋กœ ๋ณด๋Š” ๊ฒŒ ํŽธํ•˜์‹œ๋‹ค๋ฉด, ์—ฌ๊ธฐ๋กœ ์ด๋™ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


1 file, file system, directory, logical disk

File

  • "A named collection of related information"
  • ๋น„ํœ˜๋ฐœ์„ฑ์˜ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(ex ํ•˜๋“œ๋””์Šคํฌ)์— ์ €์žฅ๋˜๋Š” ๋‹จ์œ„
  • ์šด์˜์ฒด์ œ๋Š” ๋‹ค์–‘ํ•œ ์ €์žฅ ์žฅ์น˜๋ฅผ file์ด๋ผ๋Š” ๋™์ผํ•œ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์คŒ
  • ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผ ↔ ํŒŒ์ผ์€ ์ด๋ฆ„์„ ํ†ตํ•ด์„œ ์ ‘๊ทผ
  • Operation ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ
    • create, read, write, reposition (lseek), delete, open, close ๋“ฑ
    • ํŒŒ์ผ์˜ ์—ฐ์‚ฐ์ค‘ reposition(lseek)๋Š” ํŒŒ์ผ์˜ ์ฝ๊ณ  ์žˆ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ๋Š” ๊ฒƒ
    • Openํ•˜๊ณ  Close๋Š” ์™œ ํ• ๊นŒ? → ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์˜ฌ๋ฆฌ๊ณ  ๋‚ด๋ฆฌ๋Š” ์ž‘์—…

File attribute ( = metadata)

  • ํŒŒ์ผ ์ž์ฒด์˜ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ผ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ข… ์ •๋ณด๋“ค
    • ํŒŒ์ผ ์ด๋ฆ„, ์œ ํ˜•, ์ €์žฅ๋œ ์œ„์น˜, ํŒŒ์ผ ์‚ฌ์ด์ฆˆ
    • ์ ‘๊ทผ ๊ถŒํ•œ(์ฝ๊ธฐ/์“ฐ๊ธฐ/์‹คํ–‰), ์‹œ๊ฐ„(์ƒ์„ฑ/๋ณ€๊ฒฝ/์‚ฌ์šฉ), ์†Œ์œ ์ž ๋“ฑ

File system

  • ์šด์˜์ฒด์ œ์—์„œ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
  • ํŒŒ์ผ ๋ฐ ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด ๋“ฑ์„ ๊ด€๋ฆฌ
  • ํŒŒ์ผ์˜ ์ €์žฅ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๊ณ  ํŒŒ์ผ์„ ๋ณดํ˜ธ

Directory (ํด๋”)

  • ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ์ผ์ข…์˜ ํŠน๋ณ„ํ•œ ํŒŒ์ผ
    • ๋””๋ ‰ํ† ๋ฆฌ๋„ ํ•˜๋‚˜์˜ ํŒŒ์ผ!
    • ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ž๊ธฐ ์•ˆ์— ํŒŒ์ผ๋“ค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
  • ๋””๋ ‰ํ† ๋ฆฌ์— ์†ํ•œ ํŒŒ์ผ ๋ฐ ํŒŒ์ผ attribute ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • Operation ์—ฐ์‚ฐ
    • search for a file ํŒŒ์ผ ์ฐพ๊ธฐ, create a file ์ƒ์„ฑ, delete a file ์ง€์šฐ๊ธฐ
    • list a dictionary ๋ฆฌ์ŠคํŠธ, rename a file ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ, traverse the file system ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ „์ฒด ํƒ์ƒ‰ ๋“ฑ์˜ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Partition (= Logical Disk)

  • ํ•˜๋‚˜์˜ (๋ฌผ๋ฆฌ์ ) ๋””์Šคํฌ ์•ˆ์— ์—ฌ๋Ÿฌ ํŒŒํ‹ฐ์…˜์„ ๋‘๋Š” ๊ฒŒ ์ผ๋ฐ˜์  ex) C drive, D drive
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ๋„ ํ•จ ex) raid
  • (๋ฌผ๋ฆฌ์ ) ๋””์Šคํฌ๋ฅผ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋’ค ๊ฐ๊ฐ์˜ ํŒŒํ‹ฐ์…˜์— file system์„ ๊น”๊ฑฐ๋‚˜ swapping ๋“ฑ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์šด์˜์ฒด์ œ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์€ ๋ฌผ๋ฆฌ์  ๋””์Šคํฌ๊ฐ€ ์•„๋‹Œ ๋…ผ๋ฆฌ์  ๋””์Šคํฌ

2 Open()

open("/a/b/c")

  • ๋””ํฌ์Šค๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ c์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๋ž€ ๋œป์ด๋‹ค.
  • Open ํ•จ์ˆ˜๊ฐ€ ๋ฆฌํ„ดํ•˜๋Š” ๊ฐ’์€ ๊ฐ ํ”„๋กœ์„ธ์Šค์— ์žˆ๋Š” ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(fd) ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ๋ณดํ†ต 3๋ถ€ํ„ฐ ์‹œ์ž‘(0, 1, 2 ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ์• ๋Ÿฌ)

  • A ํ”„๋กœ์„ธ์Šค๊ฐ€ open ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (→ ์‹œ์Šคํ…œ ์ฝœ์ด๋ผ์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์šด์˜์ฒด์ œ์—๊ฒŒ ๋„˜์–ด๊ฐ)
  • ์˜คํ”ˆ๋œ ํŒŒ์ผ์ด ์ „์—ญ์œผ๋กœ ๊ด€๋ฆฌ ๋˜๋Š” Open file table ์ด ์žˆ๋‹ค.
  • ์šด์˜์ฒด์ œ์˜ Root ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • Root์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ Open(open file table๋กœ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค) ํ•œ๋‹ค.
  • Root ํด๋”(root์˜ content) ์•ˆ์—์„œ a์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•ด์„œ ๋‹ค์‹œ ์—ฐ๋‹ค (์ด ์ž‘์—…์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.)
  • a ํด๋”(a์˜ content) ์•ˆ์—์„œ b์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์„œ ๋‹ค์‹œ ์—ฐ๋‹ค.
  • b์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ Process A์˜ PCB์— ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค.
  • ์ด์ œ ์˜คํ”ˆํ•œ ํŒŒ์ผ์„ ์ฝ์„ ๋•Œ ์ด๋ฏธ ์˜ฌ๋ผ์˜จ FD์— ์ ‘๊ทผ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

  • FD๋Š” ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ณ (์ผ์ข…์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํฌ์ธํ„ฐ), ํ•ด๋‹น ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๋‹ค.
  • ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ž‘์€ ๋ถ€๋ถ„์— ์ €์žฅํ•˜๋Š” ๋ฐ ์ด๋ฅผ ๋ฒ„ํผ ์บ์‹œ๋ผ๊ณ  ํ•œ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ๋ฒ„ํผ ์บ์‹œ์— ์ €์žฅ์„ ํ•˜๋ฉด ๋‹ค์‹œ ์‚ฌ์šฉ์ž read ์š”์ฒญ์„ ํ–ˆ์„ ๋•Œ ์บ์‹œ์— ์žˆ๋Š” ๊ฒƒ์„ ๋ฐ”๋กœ ์ฃผ๋ฉด ๋œ๋‹ค.
  • ์ด ๋ฒ„ํผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์€ ๋ชจ๋‘ OS๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋–„๋ฌธ์— LRU, LFU ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ๊ฐ™์€ ํŒŒ์ผ์„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค offset์„ ๋‘”๋‹ค.

  • directory path์˜ search์— ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ธฐ์— open์„ read/write ๋ณ„๋„๋กœ ๋‘”๋‹ค. ํ•œ ๋ฒˆ openํ•œ ํŒŒ์ผ์€ read/write ์‹œ directory search๊ฐ€ ๋ถˆํ•„์š”ํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋ฏธ ์›ํ•˜๋Š” ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค์–ด์™€์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • Open file table: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ˜„์žฌ open ๋œ ํŒŒ์ผ๋“ค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ๋ฅผ ๋งํ•œ๋‹ค. ๋””์Šคํฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ณด๋‹ค openํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜, file offset(ํŒŒ์ผ ์–ด๋Š ์œ„์น˜ ์ ‘๊ทผ ์ค‘์ธ์ง€) ๋“ฑ์˜ ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค.
  • fd: file descriptor (file handle, file control block) ์˜ ์•ฝ์ž์ด๊ณ  ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ open file table์— ๋Œ€ํ•œ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์ ํ˜€์žˆ๋‹ค.

3 File Protection

  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋Š” read, write์—์„œ๋งŒ ์‹ ๊ฒฝ ์ผ๋‹ค.
  • ํŒŒ์ผ์€ ์—ฌ๋Ÿฌ ๊ณณ์— ์‚ฌ์šฉ๋˜๊ธฐ ๋–„๋ฌธ์—.. ์ ‘๊ทผ๊ถŒํ•œ ์œ ์ €์™€, ์–ด๋””๊นŒ์ง€ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ๋™์‹œ์— ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

Access control Matrix (์ ‘๊ทผ์ œ์–ดํ–‰๋ ฌ)

  • ํŒŒ์ผ๊ณผ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ๊ถŒํ•œ์„ ํ‘œ๋กœ ๋งŒ๋“  ๊ฒƒ
  • Access control list(ACL): ํŒŒ์ผ ๋ณ„๋กœ ๋ˆ„๊ตฌ์—๊ฒŒ ์–ด๋–ค ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ‘œ์‹œ
  • Capability: ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ž์‹ ์ด ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ํŒŒ์ผ ๋ฐ ํ•ด๋‹น ๊ถŒํ•œ ํ‘œ์‹œ

Grouping

  • ์ „์ฒด user๋ฅผ owner, group, public ์„ธ ๊ทธ๋ฃน์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด 3bit์”ฉ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ํ‘œ์‹œ (9bit)
  • ์œ ๋‹‰ ์Šค์—์„œ ์‚ฌ์šฉ(๋งฅ ํ„ฐ๋ฏธ๋„์—์„œ ls -al), ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
    • ex) rwxr--r--

Password

  • ํŒŒ์ผ ๋งˆ๋‹ค ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‘๋Š” ๋ฐฉ๋ฒ• (๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ์— ๋‘๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅ)
  • ๋ชจ๋“  ์ ‘๊ทผ ๊ถŒํ•œ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ password: all-or-nothing
  • ์ ‘๊ทผ ๊ถŒํ•œ๋ณ„ password: ๋น„๋ฒˆ์„ ์•”๊ธฐ ๋ฐ ๊ด€๋ฆฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€.

 

๋‹ค๋ฅธ ๋””์Šคํฌ์— ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ ‘๊ทผํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋˜๋ƒ → Mounting

 

04 File System์˜ Mounting

mount: ๊ฐ€์ ธ๋‹ค ๋ถ™์ธ๋‹ค

Q. disk1 ์—์„œ disk 2์™€ disk 3์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

A. mounting ํ•˜๋ฉด ๋œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฐ๊ฒฐ ์‹œํ‚ค๋Š” ๊ฒƒ์ด mounting์ด๋‹ค.

๊ต‰์žฅํžˆ flexibleํ•œ ๋ฐฉ์‹

mounting์„ ํ†ตํ•ด file system์„ ๋ฌดํ•œ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค!

linux์—์„œ man mount ์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•˜๊ธฐ ๋จ.

window์—์„œ๋Š” ๋‚ด ์ปดํ“จํ„ฐ ๋ฐ‘์— C: D: E: ๋“œ๋ผ์ด๋ธŒ๋“ค์ด ๋ถ™์–ด์žˆ๋Š” ๊ฒƒ์€ ๋ฐ”๋กœ linux์˜ mount ๊ฐœ๋…์—์„œ ๋‚˜์˜จ ๊ฒƒ.

5 Access Methods

์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ํŒŒ์ผ ์ •๋ณด์˜ ์ ‘๊ทผ ๋ฐฉ์‹

  • ์ˆœ์ฐจ ์ ‘๊ทผ (sequenctional access)
    • ์นด์„ธํŠธ ํ…Œ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ฒ˜๋Ÿผ ์ ‘๊ทผ
    • ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋ฉด offset์€ ์ž๋™์ ์œผ๋กœ ์ฆ๊ฐ€
  • ์ง์ ‘ ์ ‘๊ทผ (direct access, random access)
    • LP ๋ ˆ์ฝ”๋“œ ํŒ๊ณผ ๊ฐ™์ด ์ ‘๊ทผํ•˜๋„๋ก ํ•จ
    • ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

ex)

  • HDD: ์›ํŒ์— ์›ํ˜• ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ์Œ. track ๊นŒ์ง€๋Š” ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ดํ›„์— ์›ํ•˜๋Š” ์ง€์ ๊นŒ์ง€ ๋Œ์•„์„œ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„์˜ ์ˆœ์ฐจ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์„ž์—ฌ ์žˆ์Œ
  • SSD: ๋ฉ”๋ชจ๋ฆฌ ์นฉ ์•ˆ์— ์ €์žฅ ์žฅ์น˜๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์ ‘๊ทผ
  • DRAM: ์ง์ ‘ ์ ‘๊ทผ

'OS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

12์žฅ Disk Management And Scheduling  (0) 2021.06.19
11์žฅ File Systems Implementation  (0) 2021.06.19
9์žฅ Virtual Memory  (0) 2021.06.19
8์žฅ Memory Management  (0) 2021.06.19
7์žฅ Deadlock  (0) 2021.06.19
6์žฅ Process Synchronization  (0) 2021.06.19